Updated tests

This commit is contained in:
J.Teeuwissen 2023-04-05 21:03:01 +02:00
parent 977e19971f
commit a8bd20da5c
No known key found for this signature in database
GPG key ID: DB5F7A1ED8D478AD
44 changed files with 206 additions and 95 deletions

View file

@ -15,12 +15,14 @@ procedure List.26 (List.153, List.154, List.155):
ret List.157; ret List.157;
procedure List.29 (List.298, List.299): procedure List.29 (List.298, List.299):
inc List.298;
let List.508 : U64 = CallByName List.6 List.298; let List.508 : U64 = CallByName List.6 List.298;
let List.300 : U64 = CallByName Num.77 List.508 List.299; let List.300 : U64 = CallByName Num.77 List.508 List.299;
let List.494 : List U8 = CallByName List.43 List.298 List.300; let List.494 : List U8 = CallByName List.43 List.298 List.300;
ret List.494; ret List.494;
procedure List.43 (List.296, List.297): procedure List.43 (List.296, List.297):
inc List.296;
let List.506 : U64 = CallByName List.6 List.296; let List.506 : U64 = CallByName List.6 List.296;
let List.505 : U64 = CallByName Num.77 List.506 List.297; let List.505 : U64 = CallByName Num.77 List.506 List.297;
let List.496 : {U64, U64} = Struct {List.297, List.505}; let List.496 : {U64, U64} = Struct {List.297, List.505};
@ -43,10 +45,12 @@ procedure List.49 (List.370, List.371):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.507 : U64 = lowlevel ListLen #Attr.2; let List.507 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.507; ret List.507;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.530 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.530 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.530; ret List.530;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4): procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
@ -57,6 +61,7 @@ procedure List.80 (List.544, List.545, List.546, List.547, List.548):
joinpoint List.518 List.433 List.434 List.435 List.436 List.437: joinpoint List.518 List.433 List.434 List.435 List.436 List.437:
let List.520 : Int1 = CallByName Num.22 List.436 List.437; let List.520 : Int1 = CallByName Num.22 List.436 List.437;
if List.520 then if List.520 then
inc List.433;
let List.529 : U8 = CallByName List.66 List.433 List.436; let List.529 : U8 = CallByName List.66 List.433 List.436;
let List.521 : [C U64, C U64] = CallByName Test.4 List.434 List.529; let List.521 : [C U64, C U64] = CallByName Test.4 List.434 List.529;
let List.526 : U8 = 1i64; let List.526 : U8 = 1i64;
@ -68,10 +73,12 @@ procedure List.80 (List.544, List.545, List.546, List.547, List.548):
let List.523 : U64 = CallByName Num.19 List.436 List.524; let List.523 : U64 = CallByName Num.19 List.436 List.524;
jump List.518 List.433 List.438 List.435 List.523 List.437; jump List.518 List.433 List.438 List.435 List.523 List.437;
else else
dec List.433;
let List.439 : U64 = UnionAtIndex (Id 0) (Index 0) List.521; let List.439 : U64 = UnionAtIndex (Id 0) (Index 0) List.521;
let List.525 : [C U64, C U64] = TagId(0) List.439; let List.525 : [C U64, C U64] = TagId(0) List.439;
ret List.525; ret List.525;
else else
dec List.433;
let List.519 : [C U64, C U64] = TagId(1) List.434; let List.519 : [C U64, C U64] = TagId(1) List.434;
ret List.519; ret List.519;
in in
@ -79,6 +86,7 @@ procedure List.80 (List.544, List.545, List.546, List.547, List.548):
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.516 : U64 = 0i64; let List.516 : U64 = 0i64;
inc List.430;
let List.517 : U64 = CallByName List.6 List.430; let List.517 : U64 = CallByName List.6 List.430;
let List.515 : [C U64, C U64] = CallByName List.80 List.430 List.431 List.432 List.516 List.517; let List.515 : [C U64, C U64] = CallByName List.80 List.430 List.431 List.432 List.516 List.517;
ret List.515; ret List.515;
@ -98,6 +106,7 @@ procedure Num.77 (#Attr.2, #Attr.3):
procedure Test.1 (Test.2): procedure Test.1 (Test.2):
let Test.13 : U64 = 0i64; let Test.13 : U64 = 0i64;
let Test.14 : {} = Struct {}; let Test.14 : {} = Struct {};
inc Test.2;
let Test.3 : U64 = CallByName List.26 Test.2 Test.13 Test.14; let Test.3 : U64 = CallByName List.26 Test.2 Test.13 Test.14;
let Test.12 : U64 = 0i64; let Test.12 : U64 = 0i64;
let Test.10 : Int1 = CallByName Bool.11 Test.3 Test.12; let Test.10 : Int1 = CallByName Bool.11 Test.3 Test.12;

View file

@ -3,6 +3,7 @@ procedure Bool.1 ():
ret Bool.24; ret Bool.24;
procedure List.2 (List.96, List.97): procedure List.2 (List.96, List.97):
inc List.96;
let List.508 : U64 = CallByName List.6 List.96; let List.508 : U64 = CallByName List.6 List.96;
let List.504 : Int1 = CallByName Num.22 List.97 List.508; let List.504 : Int1 = CallByName Num.22 List.97 List.508;
if List.504 then if List.504 then
@ -10,20 +11,24 @@ procedure List.2 (List.96, List.97):
let List.505 : [C {}, C Str] = TagId(1) List.506; let List.505 : [C {}, C Str] = TagId(1) List.506;
ret List.505; ret List.505;
else else
dec List.96;
let List.503 : {} = Struct {}; let List.503 : {} = Struct {};
let List.502 : [C {}, C Str] = TagId(0) List.503; let List.502 : [C {}, C Str] = TagId(0) List.503;
ret List.502; ret List.502;
procedure List.5 (#Attr.2, #Attr.3): procedure List.5 (#Attr.2, #Attr.3):
let List.510 : List Str = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.10 #Attr.3; let List.510 : List Str = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.10 #Attr.3;
decref #Attr.2;
ret List.510; ret List.510;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.509 : U64 = lowlevel ListLen #Attr.2; let List.509 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.509; ret List.509;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.507 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.507 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.507; ret List.507;
procedure List.9 (List.287): procedure List.9 (List.287):
@ -53,13 +58,13 @@ procedure Result.5 (Result.12, Result.13):
let Result.40 : U8 = GetTagId Result.12; let Result.40 : U8 = GetTagId Result.12;
let Result.41 : Int1 = lowlevel Eq Result.39 Result.40; let Result.41 : Int1 = lowlevel Eq Result.39 Result.40;
if Result.41 then if Result.41 then
dec Result.13;
let Result.14 : Str = UnionAtIndex (Id 1) (Index 0) Result.12; let Result.14 : Str = UnionAtIndex (Id 1) (Index 0) Result.12;
inc Result.14; inc Result.14;
dec Result.12; dec Result.12;
ret Result.14; ret Result.14;
else else
dec Result.12; dec Result.12;
inc Result.13;
ret Result.13; ret Result.13;
procedure Test.10 (Test.11): procedure Test.10 (Test.11):
@ -78,6 +83,8 @@ procedure Test.2 (Test.6):
let Test.31 : Int1 = lowlevel Eq Test.29 Test.30; let Test.31 : Int1 = lowlevel Eq Test.29 Test.30;
if Test.31 then if Test.31 then
let Test.7 : [<r>C List *self, C *self] = UnionAtIndex (Id 1) (Index 0) Test.6; let Test.7 : [<r>C List *self, C *self] = UnionAtIndex (Id 1) (Index 0) Test.6;
inc Test.7;
dec Test.6;
let Test.8 : Str = CallByName Test.2 Test.7; let Test.8 : Str = CallByName Test.2 Test.7;
let Test.18 : Int1 = CallByName Bool.1; let Test.18 : Int1 = CallByName Bool.1;
if Test.18 then if Test.18 then
@ -88,18 +95,17 @@ procedure Test.2 (Test.6):
ret Test.17; ret Test.17;
else else
let Test.9 : List [<r>C List *self, C *self] = UnionAtIndex (Id 0) (Index 0) Test.6; let Test.9 : List [<r>C List *self, C *self] = UnionAtIndex (Id 0) (Index 0) Test.6;
inc Test.9;
dec Test.6;
let Test.24 : {} = Struct {}; let Test.24 : {} = Struct {};
let Test.23 : List Str = CallByName List.5 Test.9 Test.24; let Test.23 : List Str = CallByName List.5 Test.9 Test.24;
let Test.21 : [C {}, C Str] = CallByName List.9 Test.23; let Test.21 : [C {}, C Str] = CallByName List.9 Test.23;
dec Test.23;
let Test.22 : Str = "foo"; let Test.22 : Str = "foo";
let Test.20 : Str = CallByName Result.5 Test.21 Test.22; let Test.20 : Str = CallByName Result.5 Test.21 Test.22;
dec Test.22;
ret Test.20; ret Test.20;
procedure Test.0 (): procedure Test.0 ():
let Test.32 : List [<r>C List *self, C *self] = Array []; let Test.32 : List [<r>C List *self, C *self] = Array [];
let Test.15 : [<r>C List *self, C *self] = TagId(0) Test.32; let Test.15 : [<r>C List *self, C *self] = TagId(0) Test.32;
let Test.14 : Str = CallByName Test.2 Test.15; let Test.14 : Str = CallByName Test.2 Test.15;
dec Test.15;
ret Test.14; ret Test.14;

View file

@ -1,5 +1,6 @@
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.494 : U64 = lowlevel ListLen #Attr.2; let List.494 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.494; ret List.494;
procedure Test.1 (Test.5): procedure Test.1 (Test.5):
@ -14,5 +15,4 @@ procedure Test.0 ():
let Test.7 : {} = Struct {}; let Test.7 : {} = Struct {};
let Test.4 : List I64 = CallByName Test.1 Test.7; let Test.4 : List I64 = CallByName Test.1 Test.7;
let Test.6 : U64 = CallByName List.6 Test.4; let Test.6 : U64 = CallByName List.6 Test.4;
dec Test.4;
ret Test.6; ret Test.6;

View file

@ -12,28 +12,33 @@ procedure List.18 (List.136, List.137, List.138):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.511 : U64 = lowlevel ListLen #Attr.2; let List.511 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.511; ret List.511;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.510 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.510 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.510; ret List.510;
procedure List.80 (List.517, List.518, List.519, List.520, List.521): procedure List.80 (List.517, List.518, List.519, List.520, List.521):
joinpoint List.500 List.433 List.434 List.435 List.436 List.437: joinpoint List.500 List.433 List.434 List.435 List.436 List.437:
let List.502 : Int1 = CallByName Num.22 List.436 List.437; let List.502 : Int1 = CallByName Num.22 List.436 List.437;
if List.502 then if List.502 then
inc List.433;
let List.509 : Int1 = CallByName List.66 List.433 List.436; let List.509 : Int1 = CallByName List.66 List.433 List.436;
let List.503 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.139 List.434 List.509 List.435; let List.503 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.139 List.434 List.509 List.435;
let List.506 : U64 = 1i64; let List.506 : U64 = 1i64;
let List.505 : U64 = CallByName Num.19 List.436 List.506; let List.505 : U64 = CallByName Num.19 List.436 List.506;
jump List.500 List.433 List.503 List.435 List.505 List.437; jump List.500 List.433 List.503 List.435 List.505 List.437;
else else
dec List.433;
ret List.434; ret List.434;
in in
jump List.500 List.517 List.518 List.519 List.520 List.521; jump List.500 List.517 List.518 List.519 List.520 List.521;
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.498 : U64 = 0i64; let List.498 : U64 = 0i64;
inc List.430;
let List.499 : U64 = CallByName List.6 List.430; let List.499 : U64 = CallByName List.6 List.430;
let List.497 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.80 List.430 List.431 List.432 List.498 List.499; let List.497 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.80 List.430 List.431 List.432 List.498 List.499;
ret List.497; ret List.497;
@ -48,6 +53,7 @@ procedure Num.22 (#Attr.2, #Attr.3):
procedure Str.3 (#Attr.2, #Attr.3): procedure Str.3 (#Attr.2, #Attr.3):
let Str.300 : Str = lowlevel StrConcat #Attr.2 #Attr.3; let Str.300 : Str = lowlevel StrConcat #Attr.2 #Attr.3;
dec #Attr.3;
ret Str.300; ret Str.300;
procedure Test.1 (Test.5): procedure Test.1 (Test.5):
@ -65,7 +71,6 @@ procedure Test.11 (Test.53, Test.54):
case 0: case 0:
dec Test.7; dec Test.7;
let Test.28 : Str = CallByName Test.2 Test.29; let Test.28 : Str = CallByName Test.2 Test.29;
dec Test.29;
ret Test.28; ret Test.28;
case 1: case 1:
@ -89,22 +94,18 @@ procedure Test.11 (Test.53, Test.54):
jump Test.27 Test.53 Test.54; jump Test.27 Test.53 Test.54;
procedure Test.2 (Test.13): procedure Test.2 (Test.13):
inc Test.13;
ret Test.13; ret Test.13;
procedure Test.3 (Test.14): procedure Test.3 (Test.14):
let Test.48 : Str = "!"; let Test.48 : Str = "!";
let Test.47 : Str = CallByName Str.3 Test.14 Test.48; let Test.47 : Str = CallByName Str.3 Test.14 Test.48;
dec Test.48;
ret Test.47; ret Test.47;
procedure Test.4 (Test.15): procedure Test.4 (Test.15):
let Test.44 : Str = "("; let Test.44 : Str = "(";
let Test.46 : Str = ")"; let Test.46 : Str = ")";
let Test.45 : Str = CallByName Str.3 Test.15 Test.46; let Test.45 : Str = CallByName Str.3 Test.15 Test.46;
dec Test.46;
let Test.43 : Str = CallByName Str.3 Test.44 Test.45; let Test.43 : Str = CallByName Str.3 Test.44 Test.45;
dec Test.45;
ret Test.43; ret Test.43;
procedure Test.6 (Test.7, Test.8, Test.5): procedure Test.6 (Test.7, Test.8, Test.5):
@ -136,7 +137,6 @@ procedure Test.9 (Test.10, #Attr.12):
case 0: case 0:
dec Test.7; dec Test.7;
let Test.39 : Str = CallByName Test.2 Test.10; let Test.39 : Str = CallByName Test.2 Test.10;
dec Test.10;
jump Test.38 Test.39; jump Test.38 Test.39;
case 1: case 1:
@ -156,14 +156,12 @@ procedure Test.0 ():
let Test.23 : Int1 = CallByName Bool.2; let Test.23 : Int1 = CallByName Bool.2;
let Test.22 : Int1 = CallByName Test.1 Test.23; let Test.22 : Int1 = CallByName Test.1 Test.23;
let Test.16 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.18 Test.20 Test.21 Test.22; let Test.16 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.18 Test.20 Test.21 Test.22;
dec Test.20;
let Test.18 : Str = "hello"; let Test.18 : Str = "hello";
let Test.19 : U8 = GetTagId Test.16; let Test.19 : U8 = GetTagId Test.16;
switch Test.19: switch Test.19:
case 0: case 0:
dec Test.16; dec Test.16;
let Test.17 : Str = CallByName Test.2 Test.18; let Test.17 : Str = CallByName Test.2 Test.18;
dec Test.18;
ret Test.17; ret Test.17;
case 1: case 1:

View file

@ -3,6 +3,7 @@ procedure Bool.1 ():
ret Bool.23; ret Bool.23;
procedure List.2 (List.96, List.97): procedure List.2 (List.96, List.97):
inc List.96;
let List.500 : U64 = CallByName List.6 List.96; let List.500 : U64 = CallByName List.6 List.96;
let List.496 : Int1 = CallByName Num.22 List.97 List.500; let List.496 : Int1 = CallByName Num.22 List.97 List.500;
if List.496 then if List.496 then
@ -10,16 +11,19 @@ procedure List.2 (List.96, List.97):
let List.497 : [C {}, C {}] = TagId(1) List.498; let List.497 : [C {}, C {}] = TagId(1) List.498;
ret List.497; ret List.497;
else else
dec List.96;
let List.495 : {} = Struct {}; let List.495 : {} = Struct {};
let List.494 : [C {}, C {}] = TagId(0) List.495; let List.494 : [C {}, C {}] = TagId(0) List.495;
ret List.494; ret List.494;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.501 : U64 = lowlevel ListLen #Attr.2; let List.501 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.501; ret List.501;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.499 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.499 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.499; ret List.499;
procedure Num.22 (#Attr.2, #Attr.3): procedure Num.22 (#Attr.2, #Attr.3):
@ -27,6 +31,7 @@ procedure Num.22 (#Attr.2, #Attr.3):
ret Num.275; ret Num.275;
procedure Test.2 (Test.5): procedure Test.2 (Test.5):
dec Test.5;
let Test.17 : Str = "bar"; let Test.17 : Str = "bar";
ret Test.17; ret Test.17;
@ -35,7 +40,6 @@ procedure Test.0 ():
joinpoint Test.15 Test.3: joinpoint Test.15 Test.3:
let Test.13 : U64 = 0i64; let Test.13 : U64 = 0i64;
let Test.6 : [C {}, C {}] = CallByName List.2 Test.3 Test.13; let Test.6 : [C {}, C {}] = CallByName List.2 Test.3 Test.13;
dec Test.3;
let Test.10 : U8 = 1i64; let Test.10 : U8 = 1i64;
let Test.11 : U8 = GetTagId Test.6; let Test.11 : U8 = GetTagId Test.6;
let Test.12 : Int1 = lowlevel Eq Test.10 Test.11; let Test.12 : Int1 = lowlevel Eq Test.10 Test.11;
@ -43,7 +47,6 @@ procedure Test.0 ():
let Test.4 : {} = UnionAtIndex (Id 1) (Index 0) Test.6; let Test.4 : {} = UnionAtIndex (Id 1) (Index 0) Test.6;
let Test.8 : Str = "foo"; let Test.8 : Str = "foo";
let Test.7 : Str = CallByName Test.2 Test.8; let Test.7 : Str = CallByName Test.2 Test.8;
dec Test.8;
ret Test.7; ret Test.7;
else else
let Test.9 : Str = "bad!"; let Test.9 : Str = "bad!";

View file

@ -84,11 +84,11 @@ procedure Json.118 (Json.119, Json.486, Json.117):
let Json.519 : I64 = 123i64; let Json.519 : I64 = 123i64;
let Json.518 : U8 = CallByName Num.127 Json.519; let Json.518 : U8 = CallByName Num.127 Json.519;
let Json.121 : List U8 = CallByName List.4 Json.119 Json.518; let Json.121 : List U8 = CallByName List.4 Json.119 Json.518;
inc Json.117;
let Json.517 : U64 = CallByName List.6 Json.117; let Json.517 : U64 = CallByName List.6 Json.117;
let Json.494 : {List U8, U64} = Struct {Json.121, Json.517}; let Json.494 : {List U8, U64} = Struct {Json.121, Json.517};
let Json.495 : {} = Struct {}; let Json.495 : {} = Struct {};
let Json.493 : {List U8, U64} = CallByName List.18 Json.117 Json.494 Json.495; let Json.493 : {List U8, U64} = CallByName List.18 Json.117 Json.494 Json.495;
dec Json.117;
let Json.123 : List U8 = StructAtIndex 0 Json.493; let Json.123 : List U8 = StructAtIndex 0 Json.493;
inc Json.123; inc Json.123;
dec Json.493; dec Json.493;
@ -101,11 +101,11 @@ procedure Json.118 (Json.119, Json.486, Json.117):
let Json.559 : I64 = 123i64; let Json.559 : I64 = 123i64;
let Json.558 : U8 = CallByName Num.127 Json.559; let Json.558 : U8 = CallByName Num.127 Json.559;
let Json.121 : List U8 = CallByName List.4 Json.119 Json.558; let Json.121 : List U8 = CallByName List.4 Json.119 Json.558;
inc Json.117;
let Json.557 : U64 = CallByName List.6 Json.117; let Json.557 : U64 = CallByName List.6 Json.117;
let Json.534 : {List U8, U64} = Struct {Json.121, Json.557}; let Json.534 : {List U8, U64} = Struct {Json.121, Json.557};
let Json.535 : {} = Struct {}; let Json.535 : {} = Struct {};
let Json.533 : {List U8, U64} = CallByName List.18 Json.117 Json.534 Json.535; let Json.533 : {List U8, U64} = CallByName List.18 Json.117 Json.534 Json.535;
dec Json.117;
let Json.123 : List U8 = StructAtIndex 0 Json.533; let Json.123 : List U8 = StructAtIndex 0 Json.533;
inc Json.123; inc Json.123;
dec Json.533; dec Json.533;
@ -228,22 +228,27 @@ procedure List.4 (List.107, List.108):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.494 : U64 = lowlevel ListLen #Attr.2; let List.494 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.494; ret List.494;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.537 : U64 = lowlevel ListLen #Attr.2; let List.537 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.537; ret List.537;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.611 : U64 = lowlevel ListLen #Attr.2; let List.611 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.611; ret List.611;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.532 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.532 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.532; ret List.532;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.605 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.605 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.605; ret List.605;
procedure List.70 (#Attr.2, #Attr.3): procedure List.70 (#Attr.2, #Attr.3):
@ -262,12 +267,14 @@ procedure List.80 (List.547, List.548, List.549, List.550, List.551):
joinpoint List.522 List.433 List.434 List.435 List.436 List.437: joinpoint List.522 List.433 List.434 List.435 List.436 List.437:
let List.524 : Int1 = CallByName Num.22 List.436 List.437; let List.524 : Int1 = CallByName Num.22 List.436 List.437;
if List.524 then if List.524 then
inc List.433;
let List.531 : {Str, Str} = CallByName List.66 List.433 List.436; let List.531 : {Str, Str} = CallByName List.66 List.433 List.436;
let List.525 : {List U8, U64} = CallByName List.139 List.434 List.531 List.435; let List.525 : {List U8, U64} = CallByName List.139 List.434 List.531 List.435;
let List.528 : U64 = 1i64; let List.528 : U64 = 1i64;
let List.527 : U64 = CallByName Num.19 List.436 List.528; let List.527 : U64 = CallByName Num.19 List.436 List.528;
jump List.522 List.433 List.525 List.435 List.527 List.437; jump List.522 List.433 List.525 List.435 List.527 List.437;
else else
dec List.433;
ret List.434; ret List.434;
in in
jump List.522 List.547 List.548 List.549 List.550 List.551; jump List.522 List.547 List.548 List.549 List.550 List.551;
@ -276,24 +283,28 @@ procedure List.80 (List.621, List.622, List.623, List.624, List.625):
joinpoint List.595 List.433 List.434 List.435 List.436 List.437: joinpoint List.595 List.433 List.434 List.435 List.436 List.437:
let List.597 : Int1 = CallByName Num.22 List.436 List.437; let List.597 : Int1 = CallByName Num.22 List.436 List.437;
if List.597 then if List.597 then
inc List.433;
let List.604 : {Str, Str} = CallByName List.66 List.433 List.436; let List.604 : {Str, Str} = CallByName List.66 List.433 List.436;
let List.598 : {List U8, U64} = CallByName List.139 List.434 List.604 List.435; let List.598 : {List U8, U64} = CallByName List.139 List.434 List.604 List.435;
let List.601 : U64 = 1i64; let List.601 : U64 = 1i64;
let List.600 : U64 = CallByName Num.19 List.436 List.601; let List.600 : U64 = CallByName Num.19 List.436 List.601;
jump List.595 List.433 List.598 List.435 List.600 List.437; jump List.595 List.433 List.598 List.435 List.600 List.437;
else else
dec List.433;
ret List.434; ret List.434;
in in
jump List.595 List.621 List.622 List.623 List.624 List.625; jump List.595 List.621 List.622 List.623 List.624 List.625;
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.520 : U64 = 0i64; let List.520 : U64 = 0i64;
inc List.430;
let List.521 : U64 = CallByName List.6 List.430; let List.521 : U64 = CallByName List.6 List.430;
let List.519 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.520 List.521; let List.519 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.520 List.521;
ret List.519; ret List.519;
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.593 : U64 = 0i64; let List.593 : U64 = 0i64;
inc List.430;
let List.594 : U64 = CallByName List.6 List.430; let List.594 : U64 = CallByName List.6 List.430;
let List.592 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.593 List.594; let List.592 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.593 List.594;
ret List.592; ret List.592;
@ -328,6 +339,7 @@ procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
procedure Str.9 (Str.79): procedure Str.9 (Str.79):
let Str.305 : U64 = 0i64; let Str.305 : U64 = 0i64;
inc Str.79;
let Str.306 : U64 = CallByName List.6 Str.79; let Str.306 : U64 = CallByName List.6 Str.79;
let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306; let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306;
let Str.302 : Int1 = StructAtIndex 2 Str.80; let Str.302 : Int1 = StructAtIndex 2 Str.80;

View file

@ -57,11 +57,11 @@ procedure Json.118 (Json.119, Json.486, Json.117):
let Json.519 : I64 = 123i64; let Json.519 : I64 = 123i64;
let Json.518 : U8 = CallByName Num.127 Json.519; let Json.518 : U8 = CallByName Num.127 Json.519;
let Json.121 : List U8 = CallByName List.4 Json.119 Json.518; let Json.121 : List U8 = CallByName List.4 Json.119 Json.518;
inc Json.117;
let Json.517 : U64 = CallByName List.6 Json.117; let Json.517 : U64 = CallByName List.6 Json.117;
let Json.494 : {List U8, U64} = Struct {Json.121, Json.517}; let Json.494 : {List U8, U64} = Struct {Json.121, Json.517};
let Json.495 : {} = Struct {}; let Json.495 : {} = Struct {};
let Json.493 : {List U8, U64} = CallByName List.18 Json.117 Json.494 Json.495; let Json.493 : {List U8, U64} = CallByName List.18 Json.117 Json.494 Json.495;
dec Json.117;
let Json.123 : List U8 = StructAtIndex 0 Json.493; let Json.123 : List U8 = StructAtIndex 0 Json.493;
inc Json.123; inc Json.123;
dec Json.493; dec Json.493;
@ -133,14 +133,17 @@ procedure List.4 (List.107, List.108):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.494 : U64 = lowlevel ListLen #Attr.2; let List.494 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.494; ret List.494;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.544 : U64 = lowlevel ListLen #Attr.2; let List.544 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.544; ret List.544;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.538 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.538 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.538; ret List.538;
procedure List.70 (#Attr.2, #Attr.3): procedure List.70 (#Attr.2, #Attr.3):
@ -159,18 +162,21 @@ procedure List.80 (List.554, List.555, List.556, List.557, List.558):
joinpoint List.528 List.433 List.434 List.435 List.436 List.437: joinpoint List.528 List.433 List.434 List.435 List.436 List.437:
let List.530 : Int1 = CallByName Num.22 List.436 List.437; let List.530 : Int1 = CallByName Num.22 List.436 List.437;
if List.530 then if List.530 then
inc List.433;
let List.537 : {Str, Str} = CallByName List.66 List.433 List.436; let List.537 : {Str, Str} = CallByName List.66 List.433 List.436;
let List.531 : {List U8, U64} = CallByName List.139 List.434 List.537 List.435; let List.531 : {List U8, U64} = CallByName List.139 List.434 List.537 List.435;
let List.534 : U64 = 1i64; let List.534 : U64 = 1i64;
let List.533 : U64 = CallByName Num.19 List.436 List.534; let List.533 : U64 = CallByName Num.19 List.436 List.534;
jump List.528 List.433 List.531 List.435 List.533 List.437; jump List.528 List.433 List.531 List.435 List.533 List.437;
else else
dec List.433;
ret List.434; ret List.434;
in in
jump List.528 List.554 List.555 List.556 List.557 List.558; jump List.528 List.554 List.555 List.556 List.557 List.558;
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.526 : U64 = 0i64; let List.526 : U64 = 0i64;
inc List.430;
let List.527 : U64 = CallByName List.6 List.430; let List.527 : U64 = CallByName List.6 List.430;
let List.525 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.526 List.527; let List.525 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.526 List.527;
ret List.525; ret List.525;
@ -205,6 +211,7 @@ procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
procedure Str.9 (Str.79): procedure Str.9 (Str.79):
let Str.305 : U64 = 0i64; let Str.305 : U64 = 0i64;
inc Str.79;
let Str.306 : U64 = CallByName List.6 Str.79; let Str.306 : U64 = CallByName List.6 Str.79;
let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306; let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306;
let Str.302 : Int1 = StructAtIndex 2 Str.80; let Str.302 : Int1 = StructAtIndex 2 Str.80;

View file

@ -65,11 +65,11 @@ procedure Json.118 (Json.119, Json.486, Json.117):
let Json.519 : I64 = 123i64; let Json.519 : I64 = 123i64;
let Json.518 : U8 = CallByName Num.127 Json.519; let Json.518 : U8 = CallByName Num.127 Json.519;
let Json.121 : List U8 = CallByName List.4 Json.119 Json.518; let Json.121 : List U8 = CallByName List.4 Json.119 Json.518;
inc Json.117;
let Json.517 : U64 = CallByName List.6 Json.117; let Json.517 : U64 = CallByName List.6 Json.117;
let Json.494 : {List U8, U64} = Struct {Json.121, Json.517}; let Json.494 : {List U8, U64} = Struct {Json.121, Json.517};
let Json.495 : {} = Struct {}; let Json.495 : {} = Struct {};
let Json.493 : {List U8, U64} = CallByName List.18 Json.117 Json.494 Json.495; let Json.493 : {List U8, U64} = CallByName List.18 Json.117 Json.494 Json.495;
dec Json.117;
let Json.123 : List U8 = StructAtIndex 0 Json.493; let Json.123 : List U8 = StructAtIndex 0 Json.493;
inc Json.123; inc Json.123;
dec Json.493; dec Json.493;
@ -141,14 +141,17 @@ procedure List.4 (List.107, List.108):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.494 : U64 = lowlevel ListLen #Attr.2; let List.494 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.494; ret List.494;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.544 : U64 = lowlevel ListLen #Attr.2; let List.544 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.544; ret List.544;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.538 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.538 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.538; ret List.538;
procedure List.70 (#Attr.2, #Attr.3): procedure List.70 (#Attr.2, #Attr.3):
@ -167,18 +170,21 @@ procedure List.80 (List.554, List.555, List.556, List.557, List.558):
joinpoint List.528 List.433 List.434 List.435 List.436 List.437: joinpoint List.528 List.433 List.434 List.435 List.436 List.437:
let List.530 : Int1 = CallByName Num.22 List.436 List.437; let List.530 : Int1 = CallByName Num.22 List.436 List.437;
if List.530 then if List.530 then
inc List.433;
let List.537 : {Str, Str} = CallByName List.66 List.433 List.436; let List.537 : {Str, Str} = CallByName List.66 List.433 List.436;
let List.531 : {List U8, U64} = CallByName List.139 List.434 List.537 List.435; let List.531 : {List U8, U64} = CallByName List.139 List.434 List.537 List.435;
let List.534 : U64 = 1i64; let List.534 : U64 = 1i64;
let List.533 : U64 = CallByName Num.19 List.436 List.534; let List.533 : U64 = CallByName Num.19 List.436 List.534;
jump List.528 List.433 List.531 List.435 List.533 List.437; jump List.528 List.433 List.531 List.435 List.533 List.437;
else else
dec List.433;
ret List.434; ret List.434;
in in
jump List.528 List.554 List.555 List.556 List.557 List.558; jump List.528 List.554 List.555 List.556 List.557 List.558;
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.526 : U64 = 0i64; let List.526 : U64 = 0i64;
inc List.430;
let List.527 : U64 = CallByName List.6 List.430; let List.527 : U64 = CallByName List.6 List.430;
let List.525 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.526 List.527; let List.525 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.526 List.527;
ret List.525; ret List.525;
@ -213,6 +219,7 @@ procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
procedure Str.9 (Str.79): procedure Str.9 (Str.79):
let Str.305 : U64 = 0i64; let Str.305 : U64 = 0i64;
inc Str.79;
let Str.306 : U64 = CallByName List.6 Str.79; let Str.306 : U64 = CallByName List.6 Str.79;
let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306; let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306;
let Str.302 : Int1 = StructAtIndex 2 Str.80; let Str.302 : Int1 = StructAtIndex 2 Str.80;

View file

@ -38,6 +38,7 @@ procedure List.4 (List.107, List.108):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.494 : U64 = lowlevel ListLen #Attr.2; let List.494 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.494; ret List.494;
procedure List.70 (#Attr.2, #Attr.3): procedure List.70 (#Attr.2, #Attr.3):
@ -66,6 +67,7 @@ procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
procedure Str.9 (Str.79): procedure Str.9 (Str.79):
let Str.305 : U64 = 0i64; let Str.305 : U64 = 0i64;
inc Str.79;
let Str.306 : U64 = CallByName List.6 Str.79; let Str.306 : U64 = CallByName List.6 Str.79;
let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306; let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306;
let Str.302 : Int1 = StructAtIndex 2 Str.80; let Str.302 : Int1 = StructAtIndex 2 Str.80;

View file

@ -78,11 +78,11 @@ procedure Json.144 (Json.145, Json.486, #Attr.12):
let Json.511 : I64 = 91i64; let Json.511 : I64 = 91i64;
let Json.510 : U8 = CallByName Num.127 Json.511; let Json.510 : U8 = CallByName Num.127 Json.511;
let Json.147 : List U8 = CallByName List.4 Json.509 Json.510; let Json.147 : List U8 = CallByName List.4 Json.509 Json.510;
inc Json.143;
let Json.508 : U64 = CallByName List.6 Json.143; let Json.508 : U64 = CallByName List.6 Json.143;
let Json.496 : {List U8, U64} = Struct {Json.147, Json.508}; let Json.496 : {List U8, U64} = Struct {Json.147, Json.508};
let Json.497 : {} = Struct {}; let Json.497 : {} = Struct {};
let Json.495 : {List U8, U64} = CallByName List.18 Json.143 Json.496 Json.497; let Json.495 : {List U8, U64} = CallByName List.18 Json.143 Json.496 Json.497;
dec Json.143;
let Json.149 : List U8 = StructAtIndex 0 Json.495; let Json.149 : List U8 = StructAtIndex 0 Json.495;
inc Json.149; inc Json.149;
dec Json.495; dec Json.495;
@ -142,14 +142,17 @@ procedure List.4 (List.107, List.108):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.494 : U64 = lowlevel ListLen #Attr.2; let List.494 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.494; ret List.494;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.548 : U64 = lowlevel ListLen #Attr.2; let List.548 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.548; ret List.548;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.544 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.544 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.544; ret List.544;
procedure List.70 (#Attr.2, #Attr.3): procedure List.70 (#Attr.2, #Attr.3):
@ -168,18 +171,21 @@ procedure List.80 (List.560, List.561, List.562, List.563, List.564):
joinpoint List.534 List.433 List.434 List.435 List.436 List.437: joinpoint List.534 List.433 List.434 List.435 List.436 List.437:
let List.536 : Int1 = CallByName Num.22 List.436 List.437; let List.536 : Int1 = CallByName Num.22 List.436 List.437;
if List.536 then if List.536 then
inc List.433;
let List.543 : Str = CallByName List.66 List.433 List.436; let List.543 : Str = CallByName List.66 List.433 List.436;
let List.537 : {List U8, U64} = CallByName List.139 List.434 List.543 List.435; let List.537 : {List U8, U64} = CallByName List.139 List.434 List.543 List.435;
let List.540 : U64 = 1i64; let List.540 : U64 = 1i64;
let List.539 : U64 = CallByName Num.19 List.436 List.540; let List.539 : U64 = CallByName Num.19 List.436 List.540;
jump List.534 List.433 List.537 List.435 List.539 List.437; jump List.534 List.433 List.537 List.435 List.539 List.437;
else else
dec List.433;
ret List.434; ret List.434;
in in
jump List.534 List.560 List.561 List.562 List.563 List.564; jump List.534 List.560 List.561 List.562 List.563 List.564;
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.532 : U64 = 0i64; let List.532 : U64 = 0i64;
inc List.430;
let List.533 : U64 = CallByName List.6 List.430; let List.533 : U64 = CallByName List.6 List.430;
let List.531 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.532 List.533; let List.531 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.532 List.533;
ret List.531; ret List.531;
@ -214,6 +220,7 @@ procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
procedure Str.9 (Str.79): procedure Str.9 (Str.79):
let Str.305 : U64 = 0i64; let Str.305 : U64 = 0i64;
inc Str.79;
let Str.306 : U64 = CallByName List.6 Str.79; let Str.306 : U64 = CallByName List.6 Str.79;
let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306; let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306;
let Str.302 : Int1 = StructAtIndex 2 Str.80; let Str.302 : Int1 = StructAtIndex 2 Str.80;

View file

@ -84,11 +84,11 @@ procedure Json.144 (Json.145, Json.486, #Attr.12):
let Json.511 : I64 = 91i64; let Json.511 : I64 = 91i64;
let Json.510 : U8 = CallByName Num.127 Json.511; let Json.510 : U8 = CallByName Num.127 Json.511;
let Json.147 : List U8 = CallByName List.4 Json.509 Json.510; let Json.147 : List U8 = CallByName List.4 Json.509 Json.510;
inc Json.143;
let Json.508 : U64 = CallByName List.6 Json.143; let Json.508 : U64 = CallByName List.6 Json.143;
let Json.496 : {List U8, U64} = Struct {Json.147, Json.508}; let Json.496 : {List U8, U64} = Struct {Json.147, Json.508};
let Json.497 : {} = Struct {}; let Json.497 : {} = Struct {};
let Json.495 : {List U8, U64} = CallByName List.18 Json.143 Json.496 Json.497; let Json.495 : {List U8, U64} = CallByName List.18 Json.143 Json.496 Json.497;
dec Json.143;
let Json.149 : List U8 = StructAtIndex 0 Json.495; let Json.149 : List U8 = StructAtIndex 0 Json.495;
inc Json.149; inc Json.149;
dec Json.495; dec Json.495;
@ -148,14 +148,17 @@ procedure List.4 (List.107, List.108):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.494 : U64 = lowlevel ListLen #Attr.2; let List.494 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.494; ret List.494;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.548 : U64 = lowlevel ListLen #Attr.2; let List.548 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.548; ret List.548;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.544 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.544 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.544; ret List.544;
procedure List.70 (#Attr.2, #Attr.3): procedure List.70 (#Attr.2, #Attr.3):
@ -174,18 +177,21 @@ procedure List.80 (List.560, List.561, List.562, List.563, List.564):
joinpoint List.534 List.433 List.434 List.435 List.436 List.437: joinpoint List.534 List.433 List.434 List.435 List.436 List.437:
let List.536 : Int1 = CallByName Num.22 List.436 List.437; let List.536 : Int1 = CallByName Num.22 List.436 List.437;
if List.536 then if List.536 then
inc List.433;
let List.543 : Str = CallByName List.66 List.433 List.436; let List.543 : Str = CallByName List.66 List.433 List.436;
let List.537 : {List U8, U64} = CallByName List.139 List.434 List.543 List.435; let List.537 : {List U8, U64} = CallByName List.139 List.434 List.543 List.435;
let List.540 : U64 = 1i64; let List.540 : U64 = 1i64;
let List.539 : U64 = CallByName Num.19 List.436 List.540; let List.539 : U64 = CallByName Num.19 List.436 List.540;
jump List.534 List.433 List.537 List.435 List.539 List.437; jump List.534 List.433 List.537 List.435 List.539 List.437;
else else
dec List.433;
ret List.434; ret List.434;
in in
jump List.534 List.560 List.561 List.562 List.563 List.564; jump List.534 List.560 List.561 List.562 List.563 List.564;
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.532 : U64 = 0i64; let List.532 : U64 = 0i64;
inc List.430;
let List.533 : U64 = CallByName List.6 List.430; let List.533 : U64 = CallByName List.6 List.430;
let List.531 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.532 List.533; let List.531 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.532 List.533;
ret List.531; ret List.531;
@ -220,6 +226,7 @@ procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
procedure Str.9 (Str.79): procedure Str.9 (Str.79):
let Str.305 : U64 = 0i64; let Str.305 : U64 = 0i64;
inc Str.79;
let Str.306 : U64 = CallByName List.6 Str.79; let Str.306 : U64 = CallByName List.6 Str.79;
let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306; let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306;
let Str.302 : Int1 = StructAtIndex 2 Str.80; let Str.302 : Int1 = StructAtIndex 2 Str.80;

View file

@ -1,11 +1,9 @@
procedure Test.1 (Test.2, Test.3): procedure Test.1 (Test.2, Test.3):
inc Test.2; dec Test.3;
ret Test.2; ret Test.2;
procedure Test.0 (): procedure Test.0 ():
let Test.5 : List I64 = Array [1i64, 2i64, 3i64]; let Test.5 : List I64 = Array [1i64, 2i64, 3i64];
let Test.6 : List I64 = Array [3i64, 2i64, 1i64]; let Test.6 : List I64 = Array [3i64, 2i64, 1i64];
let Test.4 : List I64 = CallByName Test.1 Test.5 Test.6; let Test.4 : List I64 = CallByName Test.1 Test.5 Test.6;
dec Test.6;
dec Test.5;
ret Test.4; ret Test.4;

View file

@ -1,5 +1,6 @@
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.494 : U64 = lowlevel ListLen #Attr.2; let List.494 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.494; ret List.494;
procedure Num.19 (#Attr.2, #Attr.3): procedure Num.19 (#Attr.2, #Attr.3):
@ -14,6 +15,5 @@ procedure Test.0 ():
let Test.6 : U64 = 3i64; let Test.6 : U64 = 3i64;
let Test.3 : U64 = CallByName Num.19 Test.5 Test.6; let Test.3 : U64 = CallByName Num.19 Test.5 Test.6;
let Test.4 : U64 = CallByName List.6 Test.1; let Test.4 : U64 = CallByName List.6 Test.1;
dec Test.1;
let Test.2 : U64 = CallByName Num.19 Test.3 Test.4; let Test.2 : U64 = CallByName Num.19 Test.3 Test.4;
ret Test.2; ret Test.2;

View file

@ -9,6 +9,7 @@ procedure Bool.2 ():
procedure Test.2 (Test.4): procedure Test.2 (Test.4):
let Test.11 : U8 = 1i64; let Test.11 : U8 = 1i64;
let Test.12 : U8 = GetTagId Test.4; let Test.12 : U8 = GetTagId Test.4;
dec Test.4;
let Test.13 : Int1 = lowlevel Eq Test.11 Test.12; let Test.13 : Int1 = lowlevel Eq Test.11 Test.12;
if Test.13 then if Test.13 then
let Test.9 : Int1 = CallByName Bool.2; let Test.9 : Int1 = CallByName Bool.2;
@ -22,5 +23,4 @@ procedure Test.0 ():
let Test.15 : [<rnu><null>, C I64 *self] = TagId(1) ; let Test.15 : [<rnu><null>, C I64 *self] = TagId(1) ;
let Test.8 : [<rnu><null>, C I64 *self] = TagId(0) Test.14 Test.15; let Test.8 : [<rnu><null>, C I64 *self] = TagId(0) Test.14 Test.15;
let Test.7 : Int1 = CallByName Test.2 Test.8; let Test.7 : Int1 = CallByName Test.2 Test.8;
dec Test.8;
ret Test.7; ret Test.7;

View file

@ -7,6 +7,7 @@ procedure Bool.2 ():
ret Bool.23; ret Bool.23;
procedure List.2 (List.96, List.97): procedure List.2 (List.96, List.97):
inc List.96;
let List.508 : U64 = CallByName List.6 List.96; let List.508 : U64 = CallByName List.6 List.96;
let List.504 : Int1 = CallByName Num.22 List.97 List.508; let List.504 : Int1 = CallByName Num.22 List.97 List.508;
if List.504 then if List.504 then
@ -14,16 +15,19 @@ procedure List.2 (List.96, List.97):
let List.505 : [C {}, C I64] = TagId(1) List.506; let List.505 : [C {}, C I64] = TagId(1) List.506;
ret List.505; ret List.505;
else else
dec List.96;
let List.503 : {} = Struct {}; let List.503 : {} = Struct {};
let List.502 : [C {}, C I64] = TagId(0) List.503; let List.502 : [C {}, C I64] = TagId(0) List.503;
ret List.502; ret List.502;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.509 : U64 = lowlevel ListLen #Attr.2; let List.509 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.509; ret List.509;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.507 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.507 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.507; ret List.507;
procedure List.9 (List.287): procedure List.9 (List.287):
@ -51,6 +55,7 @@ procedure Str.27 (Str.99):
procedure Str.47 (#Attr.2): procedure Str.47 (#Attr.2):
let Str.306 : {I64, U8} = lowlevel StrToNum #Attr.2; let Str.306 : {I64, U8} = lowlevel StrToNum #Attr.2;
dec #Attr.2;
ret Str.306; ret Str.306;
procedure Str.72 (Str.244): procedure Str.72 (Str.244):
@ -72,10 +77,8 @@ procedure Test.0 ():
if Test.3 then if Test.3 then
let Test.5 : List I64 = Array []; let Test.5 : List I64 = Array [];
let Test.4 : [C Int1, C I64] = CallByName List.9 Test.5; let Test.4 : [C Int1, C I64] = CallByName List.9 Test.5;
dec Test.5;
ret Test.4; ret Test.4;
else else
let Test.2 : Str = ""; let Test.2 : Str = "";
let Test.1 : [C Int1, C I64] = CallByName Str.27 Test.2; let Test.1 : [C Int1, C I64] = CallByName Str.27 Test.2;
dec Test.2;
ret Test.1; ret Test.1;

View file

@ -8,10 +8,13 @@ procedure Test.2 (Test.19):
let Test.17 : U8 = GetTagId Test.7; let Test.17 : U8 = GetTagId Test.7;
let Test.18 : Int1 = lowlevel Eq Test.16 Test.17; let Test.18 : Int1 = lowlevel Eq Test.16 Test.17;
if Test.18 then if Test.18 then
dec Test.7;
let Test.14 : {} = Struct {}; let Test.14 : {} = Struct {};
ret Test.14; ret Test.14;
else else
let Test.5 : [<rnu><null>, C *self] = UnionAtIndex (Id 0) (Index 0) Test.7; let Test.5 : [<rnu><null>, C *self] = UnionAtIndex (Id 0) (Index 0) Test.7;
inc Test.5;
dec Test.7;
jump Test.13 Test.5; jump Test.13 Test.5;
in in
jump Test.13 Test.19; jump Test.13 Test.19;
@ -19,7 +22,6 @@ procedure Test.2 (Test.19):
procedure Test.0 (): procedure Test.0 ():
let Test.12 : [<rnu><null>, C *self] = TagId(1) ; let Test.12 : [<rnu><null>, C *self] = TagId(1) ;
let Test.10 : {} = CallByName Test.2 Test.12; let Test.10 : {} = CallByName Test.2 Test.12;
dec Test.12;
let Test.11 : {} = Struct {}; let Test.11 : {} = Struct {};
let Test.8 : Int1 = CallByName Bool.11 Test.10 Test.11; let Test.8 : Int1 = CallByName Bool.11 Test.10 Test.11;
let Test.9 : Str = ""; let Test.9 : Str = "";

View file

@ -1,5 +1,7 @@
procedure Bool.11 (#Attr.2, #Attr.3): procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.24 : Int1 = lowlevel Eq #Attr.2 #Attr.3; let Bool.24 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
dec #Attr.3;
dec #Attr.2;
ret Bool.24; ret Bool.24;
procedure Bool.4 (#Attr.2, #Attr.3): procedure Bool.4 (#Attr.2, #Attr.3):
@ -16,8 +18,6 @@ procedure Test.1 (Test.2, Test.3):
let Test.23 : {} = Struct {}; let Test.23 : {} = Struct {};
joinpoint Test.24 Test.22: joinpoint Test.24 Test.22:
let Test.20 : Int1 = CallByName Bool.11 Test.21 Test.22; let Test.20 : Int1 = CallByName Bool.11 Test.21 Test.22;
dec Test.22;
dec Test.21;
let Test.18 : Int1 = CallByName Bool.4 Test.19 Test.20; let Test.18 : Int1 = CallByName Bool.4 Test.19 Test.20;
ret Test.18; ret Test.18;
in in

View file

@ -10,6 +10,8 @@ procedure Bool.11 (#Attr.2, #Attr.3):
procedure Bool.11 (#Attr.2, #Attr.3): procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.39 : Int1 = lowlevel Eq #Attr.2 #Attr.3; let Bool.39 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
dec #Attr.3;
dec #Attr.2;
ret Bool.39; ret Bool.39;
procedure Bool.11 (#Attr.2, #Attr.3): procedure Bool.11 (#Attr.2, #Attr.3):
@ -47,6 +49,7 @@ procedure Decode.27 (Decode.107, Decode.108):
let Decode.109 : [C {}, C Str] = StructAtIndex 1 Decode.122; let Decode.109 : [C {}, C Str] = StructAtIndex 1 Decode.122;
inc Decode.109; inc Decode.109;
dec Decode.122; dec Decode.122;
inc Decode.110;
let Decode.125 : Int1 = CallByName List.1 Decode.110; let Decode.125 : Int1 = CallByName List.1 Decode.110;
if Decode.125 then if Decode.125 then
dec Decode.110; dec Decode.110;
@ -207,8 +210,6 @@ procedure Json.42 (Json.298):
let Json.562 : U8 = 34i64; let Json.562 : U8 = 34i64;
let Json.561 : List U8 = Array [Json.562]; let Json.561 : List U8 = Array [Json.562];
let Json.491 : Int1 = CallByName Bool.11 Json.299 Json.561; let Json.491 : Int1 = CallByName Bool.11 Json.299 Json.561;
dec Json.561;
dec Json.299;
if Json.491 then if Json.491 then
dec Json.298; dec Json.298;
let Json.504 : {} = Struct {}; let Json.504 : {} = Struct {};
@ -259,6 +260,7 @@ procedure List.1 (List.95):
ret List.494; ret List.494;
procedure List.29 (List.298, List.299): procedure List.29 (List.298, List.299):
inc List.298;
let List.549 : U64 = CallByName List.6 List.298; let List.549 : U64 = CallByName List.6 List.298;
let List.300 : U64 = CallByName Num.77 List.549 List.299; let List.300 : U64 = CallByName Num.77 List.549 List.299;
let List.544 : List U8 = CallByName List.43 List.298 List.300; let List.544 : List U8 = CallByName List.43 List.298 List.300;
@ -280,6 +282,7 @@ procedure List.4 (List.107, List.108):
ret List.536; ret List.536;
procedure List.43 (List.296, List.297): procedure List.43 (List.296, List.297):
inc List.296;
let List.548 : U64 = CallByName List.6 List.296; let List.548 : U64 = CallByName List.6 List.296;
let List.547 : U64 = CallByName Num.77 List.548 List.297; let List.547 : U64 = CallByName Num.77 List.548 List.297;
let List.546 : {U64, U64} = Struct {List.297, List.547}; let List.546 : {U64, U64} = Struct {List.297, List.547};
@ -301,6 +304,7 @@ procedure List.49 (List.370, List.371):
ret List.502; ret List.502;
procedure List.52 (List.385, List.386): procedure List.52 (List.385, List.386):
inc List.385;
let List.387 : U64 = CallByName List.6 List.385; let List.387 : U64 = CallByName List.6 List.385;
joinpoint List.523 List.388: joinpoint List.523 List.388:
let List.521 : U64 = 0i64; let List.521 : U64 = 0i64;
@ -321,6 +325,7 @@ procedure List.52 (List.385, List.386):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.571 : U64 = lowlevel ListLen #Attr.2; let List.571 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.571; ret List.571;
procedure List.70 (#Attr.2, #Attr.3): procedure List.70 (#Attr.2, #Attr.3):
@ -353,6 +358,7 @@ procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
procedure Str.9 (Str.79): procedure Str.9 (Str.79):
let Str.305 : U64 = 0i64; let Str.305 : U64 = 0i64;
inc Str.79;
let Str.306 : U64 = CallByName List.6 Str.79; let Str.306 : U64 = CallByName List.6 Str.79;
let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306; let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.305 Str.306;
let Str.302 : Int1 = StructAtIndex 2 Str.80; let Str.302 : Int1 = StructAtIndex 2 Str.80;

View file

@ -14,6 +14,8 @@ procedure Bool.11 (#Attr.2, #Attr.3):
procedure Bool.11 (#Attr.2, #Attr.3): procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.39 : Int1 = lowlevel Eq #Attr.2 #Attr.3; let Bool.39 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
dec #Attr.3;
dec #Attr.2;
ret Bool.39; ret Bool.39;
procedure Bool.11 (#Attr.2, #Attr.3): procedure Bool.11 (#Attr.2, #Attr.3):
@ -181,8 +183,6 @@ procedure Json.42 (Json.298):
let Json.562 : U8 = 34i64; let Json.562 : U8 = 34i64;
let Json.561 : List U8 = Array [Json.562]; let Json.561 : List U8 = Array [Json.562];
let Json.491 : Int1 = CallByName Bool.11 Json.299 Json.561; let Json.491 : Int1 = CallByName Bool.11 Json.299 Json.561;
dec Json.561;
dec Json.299;
if Json.491 then if Json.491 then
dec Json.298; dec Json.298;
let Json.504 : {} = Struct {}; let Json.504 : {} = Struct {};
@ -227,6 +227,7 @@ procedure Json.43 ():
ret Json.484; ret Json.484;
procedure List.29 (List.298, List.299): procedure List.29 (List.298, List.299):
inc List.298;
let List.543 : U64 = CallByName List.6 List.298; let List.543 : U64 = CallByName List.6 List.298;
let List.300 : U64 = CallByName Num.77 List.543 List.299; let List.300 : U64 = CallByName Num.77 List.543 List.299;
let List.538 : List U8 = CallByName List.43 List.298 List.300; let List.538 : List U8 = CallByName List.43 List.298 List.300;
@ -248,6 +249,7 @@ procedure List.4 (List.107, List.108):
ret List.530; ret List.530;
procedure List.43 (List.296, List.297): procedure List.43 (List.296, List.297):
inc List.296;
let List.542 : U64 = CallByName List.6 List.296; let List.542 : U64 = CallByName List.6 List.296;
let List.541 : U64 = CallByName Num.77 List.542 List.297; let List.541 : U64 = CallByName Num.77 List.542 List.297;
let List.540 : {U64, U64} = Struct {List.297, List.541}; let List.540 : {U64, U64} = Struct {List.297, List.541};
@ -269,6 +271,7 @@ procedure List.49 (List.370, List.371):
ret List.496; ret List.496;
procedure List.52 (List.385, List.386): procedure List.52 (List.385, List.386):
inc List.385;
let List.387 : U64 = CallByName List.6 List.385; let List.387 : U64 = CallByName List.6 List.385;
joinpoint List.517 List.388: joinpoint List.517 List.388:
let List.515 : U64 = 0i64; let List.515 : U64 = 0i64;
@ -289,6 +292,7 @@ procedure List.52 (List.385, List.386):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.565 : U64 = lowlevel ListLen #Attr.2; let List.565 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.565; ret List.565;
procedure List.70 (#Attr.2, #Attr.3): procedure List.70 (#Attr.2, #Attr.3):
@ -325,6 +329,7 @@ procedure Str.27 (Str.99):
procedure Str.47 (#Attr.2): procedure Str.47 (#Attr.2):
let Str.306 : {I64, U8} = lowlevel StrToNum #Attr.2; let Str.306 : {I64, U8} = lowlevel StrToNum #Attr.2;
dec #Attr.2;
ret Str.306; ret Str.306;
procedure Str.48 (#Attr.2, #Attr.3, #Attr.4): procedure Str.48 (#Attr.2, #Attr.3, #Attr.4):
@ -347,6 +352,7 @@ procedure Str.72 (Str.244):
procedure Str.9 (Str.79): procedure Str.9 (Str.79):
let Str.319 : U64 = 0i64; let Str.319 : U64 = 0i64;
inc Str.79;
let Str.320 : U64 = CallByName List.6 Str.79; let Str.320 : U64 = CallByName List.6 Str.79;
let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.319 Str.320; let Str.80 : {U64, Str, Int1, U8} = CallByName Str.48 Str.79 Str.319 Str.320;
let Str.316 : Int1 = StructAtIndex 2 Str.80; let Str.316 : Int1 = StructAtIndex 2 Str.80;
@ -382,7 +388,6 @@ procedure Test.0 ():
inc Test.3; inc Test.3;
dec Test.1; dec Test.1;
let Test.19 : [C {}, C I64] = CallByName Str.27 Test.3; let Test.19 : [C {}, C I64] = CallByName Str.27 Test.3;
dec Test.3;
let Test.25 : U8 = 1i64; let Test.25 : U8 = 1i64;
let Test.26 : U8 = GetTagId Test.19; let Test.26 : U8 = GetTagId Test.19;
let Test.27 : Int1 = lowlevel Eq Test.25 Test.26; let Test.27 : Int1 = lowlevel Eq Test.25 Test.26;

View file

@ -22,11 +22,11 @@ procedure Test.2 (Test.7, Test.8):
ret Test.41; ret Test.41;
procedure Test.3 (Test.17): procedure Test.3 (Test.17):
dec Test.17;
let Test.33 : {} = Struct {}; let Test.33 : {} = Struct {};
ret Test.33; ret Test.33;
procedure Test.4 (Test.18): procedure Test.4 (Test.18):
inc Test.18;
ret Test.18; ret Test.18;
procedure Test.9 (Test.26, #Attr.12): procedure Test.9 (Test.26, #Attr.12):
@ -35,7 +35,6 @@ procedure Test.9 (Test.26, #Attr.12):
let Test.46 : {} = Struct {}; let Test.46 : {} = Struct {};
let Test.45 : Str = CallByName Test.16 Test.46; let Test.45 : Str = CallByName Test.16 Test.46;
let Test.42 : Str = CallByName Test.4 Test.45; let Test.42 : Str = CallByName Test.4 Test.45;
dec Test.45;
let Test.44 : {} = Struct {}; let Test.44 : {} = Struct {};
let Test.43 : Str = CallByName Test.13 Test.44 Test.42; let Test.43 : Str = CallByName Test.13 Test.44 Test.42;
ret Test.43; ret Test.43;
@ -46,7 +45,6 @@ procedure Test.9 (Test.26, #Attr.12):
let Test.32 : {} = Struct {}; let Test.32 : {} = Struct {};
let Test.31 : Str = CallByName Test.15 Test.32; let Test.31 : Str = CallByName Test.15 Test.32;
let Test.28 : {} = CallByName Test.3 Test.31; let Test.28 : {} = CallByName Test.3 Test.31;
dec Test.31;
let Test.30 : {} = Struct {}; let Test.30 : {} = Struct {};
let Test.29 : Str = CallByName Test.11 Test.30; let Test.29 : Str = CallByName Test.11 Test.30;
ret Test.29; ret Test.29;

View file

@ -1,5 +1,4 @@
procedure Test.1 (Test.4): procedure Test.1 (Test.4):
inc Test.4;
ret Test.4; ret Test.4;
procedure Test.21 (Test.23, #Attr.12): procedure Test.21 (Test.23, #Attr.12):
@ -21,10 +20,8 @@ procedure Test.0 ():
if Test.20 then if Test.20 then
let Test.15 : Str = ""; let Test.15 : Str = "";
let Test.10 : Str = CallByName Test.1 Test.15; let Test.10 : Str = CallByName Test.1 Test.15;
dec Test.15;
jump Test.9 Test.10; jump Test.9 Test.10;
else else
let Test.18 : Str = ""; let Test.18 : Str = "";
let Test.16 : Str = CallByName Test.1 Test.18; let Test.16 : Str = CallByName Test.1 Test.18;
dec Test.18;
jump Test.9 Test.16; jump Test.9 Test.16;

View file

@ -8,28 +8,33 @@ procedure List.18 (List.136, List.137, List.138):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.511 : U64 = lowlevel ListLen #Attr.2; let List.511 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.511; ret List.511;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.510 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.510 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.510; ret List.510;
procedure List.80 (List.517, List.518, List.519, List.520, List.521): procedure List.80 (List.517, List.518, List.519, List.520, List.521):
joinpoint List.500 List.433 List.434 List.435 List.436 List.437: joinpoint List.500 List.433 List.434 List.435 List.436 List.437:
let List.502 : Int1 = CallByName Num.22 List.436 List.437; let List.502 : Int1 = CallByName Num.22 List.436 List.437;
if List.502 then if List.502 then
inc List.433;
let List.509 : [<rnu>C *self, <null>] = CallByName List.66 List.433 List.436; let List.509 : [<rnu>C *self, <null>] = CallByName List.66 List.433 List.436;
let List.503 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.139 List.434 List.509 List.435; let List.503 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.139 List.434 List.509 List.435;
let List.506 : U64 = 1i64; let List.506 : U64 = 1i64;
let List.505 : U64 = CallByName Num.19 List.436 List.506; let List.505 : U64 = CallByName Num.19 List.436 List.506;
jump List.500 List.433 List.503 List.435 List.505 List.437; jump List.500 List.433 List.503 List.435 List.505 List.437;
else else
dec List.433;
ret List.434; ret List.434;
in in
jump List.500 List.517 List.518 List.519 List.520 List.521; jump List.500 List.517 List.518 List.519 List.520 List.521;
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.498 : U64 = 0i64; let List.498 : U64 = 0i64;
inc List.430;
let List.499 : U64 = CallByName List.6 List.430; let List.499 : U64 = CallByName List.6 List.430;
let List.497 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.80 List.430 List.431 List.432 List.498 List.499; let List.497 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.80 List.430 List.431 List.432 List.498 List.499;
ret List.497; ret List.497;
@ -52,5 +57,4 @@ procedure Test.0 ():
let Test.8 : List [<rnu>C *self, <null>] = Array []; let Test.8 : List [<rnu>C *self, <null>] = Array [];
let Test.15 : {} = Struct {}; let Test.15 : {} = Struct {};
let Test.9 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.18 Test.8 Test.6 Test.15; let Test.9 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.18 Test.8 Test.6 Test.15;
dec Test.8;
ret Test.9; ret Test.9;

View file

@ -7,9 +7,11 @@ procedure List.3 (List.104, List.105, List.106):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.495 : U64 = lowlevel ListLen #Attr.2; let List.495 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.495; ret List.495;
procedure List.64 (List.101, List.102, List.103): procedure List.64 (List.101, List.102, List.103):
inc List.101;
let List.502 : U64 = CallByName List.6 List.101; let List.502 : U64 = CallByName List.6 List.101;
let List.499 : Int1 = CallByName Num.22 List.102 List.502; let List.499 : Int1 = CallByName Num.22 List.102 List.502;
if List.499 then if List.499 then
@ -45,9 +47,7 @@ procedure Test.0 ():
let Test.10 : List I64 = CallByName Test.1; let Test.10 : List I64 = CallByName Test.1;
let Test.9 : List I64 = CallByName Test.2 Test.10; let Test.9 : List I64 = CallByName Test.2 Test.10;
let Test.5 : U64 = CallByName List.6 Test.9; let Test.5 : U64 = CallByName List.6 Test.9;
dec Test.9;
let Test.7 : List I64 = CallByName Test.1; let Test.7 : List I64 = CallByName Test.1;
let Test.6 : U64 = CallByName List.6 Test.7; let Test.6 : U64 = CallByName List.6 Test.7;
dec Test.7;
let Test.4 : U64 = CallByName Num.19 Test.5 Test.6; let Test.4 : U64 = CallByName Num.19 Test.5 Test.6;
ret Test.4; ret Test.4;

View file

@ -1,4 +1,5 @@
procedure List.2 (List.96, List.97): procedure List.2 (List.96, List.97):
inc List.96;
let List.500 : U64 = CallByName List.6 List.96; let List.500 : U64 = CallByName List.6 List.96;
let List.496 : Int1 = CallByName Num.22 List.97 List.500; let List.496 : Int1 = CallByName Num.22 List.97 List.500;
if List.496 then if List.496 then
@ -6,16 +7,19 @@ procedure List.2 (List.96, List.97):
let List.497 : [C {}, C I64] = TagId(1) List.498; let List.497 : [C {}, C I64] = TagId(1) List.498;
ret List.497; ret List.497;
else else
dec List.96;
let List.495 : {} = Struct {}; let List.495 : {} = Struct {};
let List.494 : [C {}, C I64] = TagId(0) List.495; let List.494 : [C {}, C I64] = TagId(0) List.495;
ret List.494; ret List.494;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.501 : U64 = lowlevel ListLen #Attr.2; let List.501 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.501; ret List.501;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.499 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.499 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.499; ret List.499;
procedure Num.22 (#Attr.2, #Attr.3): procedure Num.22 (#Attr.2, #Attr.3):
@ -26,7 +30,6 @@ procedure Test.1 (Test.2):
let Test.6 : List I64 = Array [1i64, 2i64, 3i64]; let Test.6 : List I64 = Array [1i64, 2i64, 3i64];
let Test.7 : U64 = 0i64; let Test.7 : U64 = 0i64;
let Test.5 : [C {}, C I64] = CallByName List.2 Test.6 Test.7; let Test.5 : [C {}, C I64] = CallByName List.2 Test.6 Test.7;
dec Test.6;
ret Test.5; ret Test.5;
procedure Test.0 (): procedure Test.0 ():

View file

@ -1,9 +1,11 @@
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.494 : U64 = lowlevel ListLen #Attr.2; let List.494 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.494; ret List.494;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.495 : U64 = lowlevel ListLen #Attr.2; let List.495 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.495; ret List.495;
procedure Num.19 (#Attr.2, #Attr.3): procedure Num.19 (#Attr.2, #Attr.3):
@ -14,8 +16,6 @@ procedure Test.0 ():
let Test.1 : List I64 = Array [1i64, 2i64, 3i64]; let Test.1 : List I64 = Array [1i64, 2i64, 3i64];
let Test.2 : List Float64 = Array [1f64]; let Test.2 : List Float64 = Array [1f64];
let Test.4 : U64 = CallByName List.6 Test.1; let Test.4 : U64 = CallByName List.6 Test.1;
dec Test.1;
let Test.5 : U64 = CallByName List.6 Test.2; let Test.5 : U64 = CallByName List.6 Test.2;
dec Test.2;
let Test.3 : U64 = CallByName Num.19 Test.4 Test.5; let Test.3 : U64 = CallByName Num.19 Test.4 Test.5;
ret Test.3; ret Test.3;

View file

@ -1,4 +1,5 @@
procedure List.2 (List.96, List.97): procedure List.2 (List.96, List.97):
inc List.96;
let List.500 : U64 = CallByName List.6 List.96; let List.500 : U64 = CallByName List.6 List.96;
let List.496 : Int1 = CallByName Num.22 List.97 List.500; let List.496 : Int1 = CallByName Num.22 List.97 List.500;
if List.496 then if List.496 then
@ -6,20 +7,24 @@ procedure List.2 (List.96, List.97):
let List.497 : [C {}, C Str] = TagId(1) List.498; let List.497 : [C {}, C Str] = TagId(1) List.498;
ret List.497; ret List.497;
else else
dec List.96;
let List.495 : {} = Struct {}; let List.495 : {} = Struct {};
let List.494 : [C {}, C Str] = TagId(0) List.495; let List.494 : [C {}, C Str] = TagId(0) List.495;
ret List.494; ret List.494;
procedure List.5 (#Attr.2, #Attr.3): procedure List.5 (#Attr.2, #Attr.3):
let List.502 : List Str = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.3 #Attr.3; let List.502 : List Str = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.3 #Attr.3;
decref #Attr.2;
ret List.502; ret List.502;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.501 : U64 = lowlevel ListLen #Attr.2; let List.501 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.501; ret List.501;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.499 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.499 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.499; ret List.499;
procedure Num.22 (#Attr.2, #Attr.3): procedure Num.22 (#Attr.2, #Attr.3):
@ -28,17 +33,18 @@ procedure Num.22 (#Attr.2, #Attr.3):
procedure Str.16 (#Attr.2, #Attr.3): procedure Str.16 (#Attr.2, #Attr.3):
let Str.298 : Str = lowlevel StrRepeat #Attr.2 #Attr.3; let Str.298 : Str = lowlevel StrRepeat #Attr.2 #Attr.3;
dec #Attr.2;
ret Str.298; ret Str.298;
procedure Str.3 (#Attr.2, #Attr.3): procedure Str.3 (#Attr.2, #Attr.3):
let Str.299 : Str = lowlevel StrConcat #Attr.2 #Attr.3; let Str.299 : Str = lowlevel StrConcat #Attr.2 #Attr.3;
dec #Attr.3;
ret Str.299; ret Str.299;
procedure Test.1 (): procedure Test.1 ():
let Test.21 : Str = "lllllllllllllllllllllooooooooooong"; let Test.21 : Str = "lllllllllllllllllllllooooooooooong";
let Test.22 : Str = "g"; let Test.22 : Str = "g";
let Test.20 : Str = CallByName Str.3 Test.21 Test.22; let Test.20 : Str = CallByName Str.3 Test.21 Test.22;
dec Test.22;
let Test.19 : List Str = Array [Test.20]; let Test.19 : List Str = Array [Test.20];
ret Test.19; ret Test.19;
@ -46,7 +52,6 @@ procedure Test.2 ():
let Test.15 : List Str = CallByName Test.1; let Test.15 : List Str = CallByName Test.1;
let Test.16 : {} = Struct {}; let Test.16 : {} = Struct {};
let Test.14 : List Str = CallByName List.5 Test.15 Test.16; let Test.14 : List Str = CallByName List.5 Test.15 Test.16;
dec Test.15;
ret Test.14; ret Test.14;
procedure Test.3 (Test.4): procedure Test.3 (Test.4):
@ -58,7 +63,6 @@ procedure Test.0 ():
let Test.12 : List Str = CallByName Test.2; let Test.12 : List Str = CallByName Test.2;
let Test.13 : U64 = 0i64; let Test.13 : U64 = 0i64;
let Test.6 : [C {}, C Str] = CallByName List.2 Test.12 Test.13; let Test.6 : [C {}, C Str] = CallByName List.2 Test.12 Test.13;
dec Test.12;
let Test.9 : U8 = 1i64; let Test.9 : U8 = 1i64;
let Test.10 : U8 = GetTagId Test.6; let Test.10 : U8 = GetTagId Test.6;
let Test.11 : Int1 = lowlevel Eq Test.9 Test.10; let Test.11 : Int1 = lowlevel Eq Test.9 Test.10;

View file

@ -1,4 +1,5 @@
procedure List.2 (List.96, List.97): procedure List.2 (List.96, List.97):
inc List.96;
let List.500 : U64 = CallByName List.6 List.96; let List.500 : U64 = CallByName List.6 List.96;
let List.496 : Int1 = CallByName Num.22 List.97 List.500; let List.496 : Int1 = CallByName Num.22 List.97 List.500;
if List.496 then if List.496 then
@ -6,6 +7,7 @@ procedure List.2 (List.96, List.97):
let List.497 : [C {}, C Str] = TagId(1) List.498; let List.497 : [C {}, C Str] = TagId(1) List.498;
ret List.497; ret List.497;
else else
dec List.96;
let List.495 : {} = Struct {}; let List.495 : {} = Struct {};
let List.494 : [C {}, C Str] = TagId(0) List.495; let List.494 : [C {}, C Str] = TagId(0) List.495;
ret List.494; ret List.494;
@ -17,10 +19,12 @@ procedure List.5 (#Attr.2, #Attr.3):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.501 : U64 = lowlevel ListLen #Attr.2; let List.501 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.501; ret List.501;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.499 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.499 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.499; ret List.499;
procedure Num.22 (#Attr.2, #Attr.3): procedure Num.22 (#Attr.2, #Attr.3):
@ -29,13 +33,13 @@ procedure Num.22 (#Attr.2, #Attr.3):
procedure Str.3 (#Attr.2, #Attr.3): procedure Str.3 (#Attr.2, #Attr.3):
let Str.299 : Str = lowlevel StrConcat #Attr.2 #Attr.3; let Str.299 : Str = lowlevel StrConcat #Attr.2 #Attr.3;
dec #Attr.3;
ret Str.299; ret Str.299;
procedure Test.1 (): procedure Test.1 ():
let Test.21 : Str = "lllllllllllllllllllllooooooooooong"; let Test.21 : Str = "lllllllllllllllllllllooooooooooong";
let Test.22 : Str = "g"; let Test.22 : Str = "g";
let Test.20 : Str = CallByName Str.3 Test.21 Test.22; let Test.20 : Str = CallByName Str.3 Test.21 Test.22;
dec Test.22;
let Test.19 : List Str = Array [Test.20]; let Test.19 : List Str = Array [Test.20];
ret Test.19; ret Test.19;
@ -48,14 +52,12 @@ procedure Test.2 ():
procedure Test.3 (Test.4): procedure Test.3 (Test.4):
let Test.18 : Str = "!"; let Test.18 : Str = "!";
let Test.17 : Str = CallByName Str.3 Test.4 Test.18; let Test.17 : Str = CallByName Str.3 Test.4 Test.18;
dec Test.18;
ret Test.17; ret Test.17;
procedure Test.0 (): procedure Test.0 ():
let Test.12 : List Str = CallByName Test.2; let Test.12 : List Str = CallByName Test.2;
let Test.13 : U64 = 0i64; let Test.13 : U64 = 0i64;
let Test.6 : [C {}, C Str] = CallByName List.2 Test.12 Test.13; let Test.6 : [C {}, C Str] = CallByName List.2 Test.12 Test.13;
dec Test.12;
let Test.9 : U8 = 1i64; let Test.9 : U8 = 1i64;
let Test.10 : U8 = GetTagId Test.6; let Test.10 : U8 = GetTagId Test.6;
let Test.11 : Int1 = lowlevel Eq Test.9 Test.10; let Test.11 : Int1 = lowlevel Eq Test.9 Test.10;

View file

@ -1,7 +1,6 @@
procedure List.5 (#Attr.2, #Attr.3): procedure List.5 (#Attr.2, #Attr.3):
let List.495 : U8 = GetTagId #Attr.3; let List.495 : U8 = GetTagId #Attr.3;
joinpoint List.496 List.494: joinpoint List.496 List.494:
inc List.494;
ret List.494; ret List.494;
in in
switch List.495: switch List.495:
@ -58,8 +57,8 @@ procedure Test.0 ():
else else
let Test.20 : Str = "B"; let Test.20 : Str = "B";
let Test.21 : Int1 = lowlevel Eq Test.20 Test.12; let Test.21 : Int1 = lowlevel Eq Test.20 Test.12;
dec Test.12;
dec Test.20; dec Test.20;
dec Test.12;
if Test.21 then if Test.21 then
let Test.16 : [C U8, C U8, C ] = TagId(1) Test.2; let Test.16 : [C U8, C U8, C ] = TagId(1) Test.2;
jump Test.13 Test.16; jump Test.13 Test.16;

View file

@ -7,9 +7,11 @@ procedure List.3 (List.104, List.105, List.106):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.501 : U64 = lowlevel ListLen #Attr.2; let List.501 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.501; ret List.501;
procedure List.64 (List.101, List.102, List.103): procedure List.64 (List.101, List.102, List.103):
inc List.101;
let List.500 : U64 = CallByName List.6 List.101; let List.500 : U64 = CallByName List.6 List.101;
let List.497 : Int1 = CallByName Num.22 List.102 List.500; let List.497 : Int1 = CallByName Num.22 List.102 List.500;
if List.497 then if List.497 then

View file

@ -1,10 +1,5 @@
procedure List.28 (#Attr.2, #Attr.3): procedure List.28 (#Attr.2, #Attr.3):
let List.496 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3; let List.496 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
let #Derived_gen.0 : Int1 = lowlevel ListIsUnique #Attr.2;
if #Derived_gen.0 then
ret List.496;
else
decref #Attr.2;
ret List.496; ret List.496;
procedure List.59 (List.282): procedure List.59 (List.282):

View file

@ -7,6 +7,8 @@ procedure Test.1 (Test.3):
ret Test.13; ret Test.13;
procedure Test.2 (Test.4, Test.5): procedure Test.2 (Test.4, Test.5):
dec Test.5;
dec Test.4;
let Test.9 : U64 = 18i64; let Test.9 : U64 = 18i64;
ret Test.9; ret Test.9;
@ -16,6 +18,4 @@ procedure Test.0 ():
let Test.10 : {} = Struct {}; let Test.10 : {} = Struct {};
let Test.8 : List U16 = CallByName Test.1 Test.10; let Test.8 : List U16 = CallByName Test.1 Test.10;
let Test.6 : U64 = CallByName Test.2 Test.7 Test.8; let Test.6 : U64 = CallByName Test.2 Test.7 Test.8;
dec Test.8;
dec Test.7;
ret Test.6; ret Test.6;

View file

@ -1,9 +1,11 @@
procedure Str.3 (#Attr.2, #Attr.3): procedure Str.3 (#Attr.2, #Attr.3):
let Str.299 : Str = lowlevel StrConcat #Attr.2 #Attr.3; let Str.299 : Str = lowlevel StrConcat #Attr.2 #Attr.3;
dec #Attr.3;
ret Str.299; ret Str.299;
procedure Test.2 (Test.4): procedure Test.2 (Test.4):
let Test.16 : U8 = GetTagId Test.4; let Test.16 : U8 = GetTagId Test.4;
dec Test.4;
switch Test.16: switch Test.16:
case 0: case 0:
let Test.13 : Str = "A"; let Test.13 : Str = "A";
@ -22,15 +24,10 @@ procedure Test.0 ():
let Test.21 : [<rnw>C *self, <null>, C ] = TagId(1) ; let Test.21 : [<rnw>C *self, <null>, C ] = TagId(1) ;
let Test.20 : [<rnw>C *self, <null>, C ] = TagId(0) Test.21; let Test.20 : [<rnw>C *self, <null>, C ] = TagId(0) Test.21;
let Test.17 : Str = CallByName Test.2 Test.20; let Test.17 : Str = CallByName Test.2 Test.20;
dec Test.20;
let Test.19 : [<rnw>C *self, <null>, C ] = TagId(1) ; let Test.19 : [<rnw>C *self, <null>, C ] = TagId(1) ;
let Test.18 : Str = CallByName Test.2 Test.19; let Test.18 : Str = CallByName Test.2 Test.19;
dec Test.19;
let Test.10 : Str = CallByName Str.3 Test.17 Test.18; let Test.10 : Str = CallByName Str.3 Test.17 Test.18;
dec Test.18;
let Test.12 : [<rnw>C *self, <null>, C ] = TagId(2) ; let Test.12 : [<rnw>C *self, <null>, C ] = TagId(2) ;
let Test.11 : Str = CallByName Test.2 Test.12; let Test.11 : Str = CallByName Test.2 Test.12;
dec Test.12;
let Test.9 : Str = CallByName Str.3 Test.10 Test.11; let Test.9 : Str = CallByName Str.3 Test.10 Test.11;
dec Test.11;
ret Test.9; ret Test.9;

View file

@ -1,9 +1,12 @@
procedure Bool.11 (#Attr.2, #Attr.3): procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3; let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
dec #Attr.3;
dec #Attr.2;
ret Bool.23; ret Bool.23;
procedure Test.2 (Test.5): procedure Test.2 (Test.5):
let Test.14 : U8 = GetTagId Test.5; let Test.14 : U8 = GetTagId Test.5;
dec Test.5;
switch Test.14: switch Test.14:
case 2: case 2:
let Test.11 : Str = "a"; let Test.11 : Str = "a";
@ -21,9 +24,6 @@ procedure Test.2 (Test.5):
procedure Test.0 (): procedure Test.0 ():
let Test.10 : [<rnw><null>, C Str, C *self] = TagId(0) ; let Test.10 : [<rnw><null>, C Str, C *self] = TagId(0) ;
let Test.8 : Str = CallByName Test.2 Test.10; let Test.8 : Str = CallByName Test.2 Test.10;
dec Test.10;
let Test.9 : Str = "c"; let Test.9 : Str = "c";
let Test.7 : Int1 = CallByName Bool.11 Test.8 Test.9; let Test.7 : Int1 = CallByName Bool.11 Test.8 Test.9;
dec Test.9;
dec Test.8;
ret Test.7; ret Test.7;

View file

@ -1,9 +1,11 @@
procedure Bool.11 (#Attr.2, #Attr.3): procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3; let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
dec #Attr.3;
dec #Attr.2;
ret Bool.23; ret Bool.23;
procedure Test.0 (): procedure Test.0 ():
let Test.3 : Str = "foo"; let Test.3 : Str = "foo";
inc Test.3;
let Test.4 : Int1 = CallByName Bool.11 Test.3 Test.3; let Test.4 : Int1 = CallByName Bool.11 Test.3 Test.3;
dec Test.3;
ret Test.4; ret Test.4;

View file

@ -1,18 +1,19 @@
procedure Bool.11 (#Attr.2, #Attr.3): procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3; let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
dec #Attr.3;
dec #Attr.2;
ret Bool.23; ret Bool.23;
procedure Str.3 (#Attr.2, #Attr.3): procedure Str.3 (#Attr.2, #Attr.3):
let Str.299 : Str = lowlevel StrConcat #Attr.2 #Attr.3; let Str.299 : Str = lowlevel StrConcat #Attr.2 #Attr.3;
dec #Attr.3;
ret Str.299; ret Str.299;
procedure Test.2 (Test.7): procedure Test.2 (Test.7):
let Test.24 : Str = ".trace(\""; let Test.24 : Str = ".trace(\"";
let Test.26 : Str = "\")"; let Test.26 : Str = "\")";
let Test.25 : Str = CallByName Str.3 Test.7 Test.26; let Test.25 : Str = CallByName Str.3 Test.7 Test.26;
dec Test.26;
let Test.23 : Str = CallByName Str.3 Test.24 Test.25; let Test.23 : Str = CallByName Str.3 Test.24 Test.25;
dec Test.25;
let Test.22 : [<r>C List *self, C Str] = TagId(1) Test.23; let Test.22 : [<r>C List *self, C Str] = TagId(1) Test.23;
let Test.21 : List [<r>C List *self, C Str] = Array [Test.22]; let Test.21 : List [<r>C List *self, C Str] = Array [Test.22];
let Test.8 : [<r>C List *self, C Str] = TagId(0) Test.21; let Test.8 : [<r>C List *self, C Str] = TagId(0) Test.21;
@ -30,6 +31,4 @@ procedure Test.0 ():
let Test.16 : Str = ""; let Test.16 : Str = "";
let Test.15 : [<r>C List *self, C Str] = TagId(1) Test.16; let Test.15 : [<r>C List *self, C Str] = TagId(1) Test.16;
let Test.13 : Int1 = CallByName Bool.11 Test.14 Test.15; let Test.13 : Int1 = CallByName Bool.11 Test.14 Test.15;
dec Test.15;
dec Test.14;
ret Test.13; ret Test.13;

View file

@ -1,4 +1,5 @@
procedure List.2 (List.96, List.97): procedure List.2 (List.96, List.97):
inc List.96;
let List.516 : U64 = CallByName List.6 List.96; let List.516 : U64 = CallByName List.6 List.96;
let List.513 : Int1 = CallByName Num.22 List.97 List.516; let List.513 : Int1 = CallByName Num.22 List.97 List.516;
if List.513 then if List.513 then
@ -6,6 +7,7 @@ procedure List.2 (List.96, List.97):
let List.514 : [C {}, C I64] = TagId(1) List.515; let List.514 : [C {}, C I64] = TagId(1) List.515;
ret List.514; ret List.514;
else else
dec List.96;
let List.512 : {} = Struct {}; let List.512 : {} = Struct {};
let List.511 : [C {}, C I64] = TagId(0) List.512; let List.511 : [C {}, C I64] = TagId(0) List.512;
ret List.511; ret List.511;
@ -19,9 +21,11 @@ procedure List.3 (List.104, List.105, List.106):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.501 : U64 = lowlevel ListLen #Attr.2; let List.501 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.501; ret List.501;
procedure List.64 (List.101, List.102, List.103): procedure List.64 (List.101, List.102, List.103):
inc List.101;
let List.500 : U64 = CallByName List.6 List.101; let List.500 : U64 = CallByName List.6 List.101;
let List.497 : Int1 = CallByName Num.22 List.102 List.500; let List.497 : Int1 = CallByName Num.22 List.102 List.500;
if List.497 then if List.497 then
@ -33,6 +37,7 @@ procedure List.64 (List.101, List.102, List.103):
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.509 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.509 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.509; ret List.509;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4): procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
@ -45,8 +50,10 @@ procedure Num.22 (#Attr.2, #Attr.3):
procedure Test.1 (Test.2): procedure Test.1 (Test.2):
let Test.28 : U64 = 0i64; let Test.28 : U64 = 0i64;
inc Test.2;
let Test.26 : [C {}, C I64] = CallByName List.2 Test.2 Test.28; let Test.26 : [C {}, C I64] = CallByName List.2 Test.2 Test.28;
let Test.27 : U64 = 0i64; let Test.27 : U64 = 0i64;
inc Test.2;
let Test.25 : [C {}, C I64] = CallByName List.2 Test.2 Test.27; let Test.25 : [C {}, C I64] = CallByName List.2 Test.2 Test.27;
let Test.8 : {[C {}, C I64], [C {}, C I64]} = Struct {Test.25, Test.26}; let Test.8 : {[C {}, C I64], [C {}, C I64]} = Struct {Test.25, Test.26};
joinpoint Test.22: joinpoint Test.22:

View file

@ -1,18 +1,21 @@
procedure List.5 (#Attr.2, #Attr.3): procedure List.5 (#Attr.2, #Attr.3):
let List.494 : List [<rnnu>C List *self] = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.2 #Attr.3; let List.494 : List [<rnnu>C List *self] = lowlevel ListMap { xs: `#Attr.#arg1` } #Attr.2 Test.2 #Attr.3;
decref #Attr.2;
ret List.494; ret List.494;
procedure Test.2 (Test.5): procedure Test.2 (Test.5):
let Test.6 : List [<rnnu>C List *self] = UnionAtIndex (Id 0) (Index 0) Test.5; let Test.6 : List [<rnnu>C List *self] = UnionAtIndex (Id 0) (Index 0) Test.5;
inc Test.6;
let #Derived_gen.1 : [<rnnu>C List *self] = Reset { symbol: `#UserApp.after`, id: 1 };
let Test.15 : {} = Struct {}; let Test.15 : {} = Struct {};
let Test.7 : List [<rnnu>C List *self] = CallByName List.5 Test.6 Test.15; let Test.7 : List [<rnnu>C List *self] = CallByName List.5 Test.6 Test.15;
let Test.14 : [<rnnu>C List *self] = TagId(0) Test.7; let Test.14 : [<rnnu>C List *self] = Reuse #Derived_gen.1 UpdateModeId { id: 1 } TagId(0) Test.7;
ret Test.14; ret Test.14;
procedure Test.0 (): procedure Test.0 ():
let Test.16 : List [<rnnu>C List *self] = Array []; let Test.16 : List [<rnnu>C List *self] = Array [];
let Test.12 : [<rnnu>C List *self] = TagId(0) Test.16; let Test.12 : [<rnnu>C List *self] = TagId(0) Test.16;
let Test.10 : [<rnnu>C List *self] = CallByName Test.2 Test.12; let Test.10 : [<rnnu>C List *self] = CallByName Test.2 Test.12;
dec Test.12; dec Test.10;
let Test.11 : Str = ""; let Test.11 : Str = "";
ret Test.11; ret Test.11;

View file

@ -4,6 +4,7 @@ procedure Num.20 (#Attr.2, #Attr.3):
procedure Str.3 (#Attr.2, #Attr.3): procedure Str.3 (#Attr.2, #Attr.3):
let Str.300 : Str = lowlevel StrConcat #Attr.2 #Attr.3; let Str.300 : Str = lowlevel StrConcat #Attr.2 #Attr.3;
dec #Attr.3;
ret Str.300; ret Str.300;
procedure Test.11 (Test.29, #Attr.12): procedure Test.11 (Test.29, #Attr.12):
@ -41,11 +42,8 @@ procedure Test.2 ():
let Test.21 : Str = ", "; let Test.21 : Str = ", ";
let Test.23 : Str = "!"; let Test.23 : Str = "!";
let Test.22 : Str = CallByName Str.3 Test.7 Test.23; let Test.22 : Str = CallByName Str.3 Test.7 Test.23;
dec Test.23;
let Test.20 : Str = CallByName Str.3 Test.21 Test.22; let Test.20 : Str = CallByName Str.3 Test.21 Test.22;
dec Test.22;
let Test.19 : Str = CallByName Str.3 Test.6 Test.20; let Test.19 : Str = CallByName Str.3 Test.6 Test.20;
dec Test.20;
ret Test.19; ret Test.19;
procedure Test.3 (Test.8): procedure Test.3 (Test.8):
@ -81,5 +79,6 @@ procedure Test.9 (Test.44, Test.8):
procedure Test.0 (): procedure Test.0 ():
let Test.24 : I64 = 4i64; let Test.24 : I64 = 4i64;
let Test.17 : [<r>C {}, C I64 {}] = CallByName Test.3 Test.24; let Test.17 : [<r>C {}, C I64 {}] = CallByName Test.3 Test.24;
dec Test.17;
let Test.18 : Str = CallByName Test.2; let Test.18 : Str = CallByName Test.2;
ret Test.18; ret Test.18;

View file

@ -1,4 +1,5 @@
procedure List.2 (List.96, List.97): procedure List.2 (List.96, List.97):
inc List.96;
let List.516 : U64 = CallByName List.6 List.96; let List.516 : U64 = CallByName List.6 List.96;
let List.513 : Int1 = CallByName Num.22 List.97 List.516; let List.513 : Int1 = CallByName Num.22 List.97 List.516;
if List.513 then if List.513 then
@ -6,6 +7,7 @@ procedure List.2 (List.96, List.97):
let List.514 : [C {}, C I64] = TagId(1) List.515; let List.514 : [C {}, C I64] = TagId(1) List.515;
ret List.514; ret List.514;
else else
dec List.96;
let List.512 : {} = Struct {}; let List.512 : {} = Struct {};
let List.511 : [C {}, C I64] = TagId(0) List.512; let List.511 : [C {}, C I64] = TagId(0) List.512;
ret List.511; ret List.511;
@ -19,9 +21,11 @@ procedure List.3 (List.104, List.105, List.106):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.501 : U64 = lowlevel ListLen #Attr.2; let List.501 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.501; ret List.501;
procedure List.64 (List.101, List.102, List.103): procedure List.64 (List.101, List.102, List.103):
inc List.101;
let List.500 : U64 = CallByName List.6 List.101; let List.500 : U64 = CallByName List.6 List.101;
let List.497 : Int1 = CallByName Num.22 List.102 List.500; let List.497 : Int1 = CallByName Num.22 List.102 List.500;
if List.497 then if List.497 then
@ -33,6 +37,7 @@ procedure List.64 (List.101, List.102, List.103):
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.509 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.509 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.509; ret List.509;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4): procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
@ -44,7 +49,9 @@ procedure Num.22 (#Attr.2, #Attr.3):
ret Num.277; ret Num.277;
procedure Test.1 (Test.2, Test.3, Test.4): procedure Test.1 (Test.2, Test.3, Test.4):
inc Test.4;
let Test.29 : [C {}, C I64] = CallByName List.2 Test.4 Test.3; let Test.29 : [C {}, C I64] = CallByName List.2 Test.4 Test.3;
inc Test.4;
let Test.28 : [C {}, C I64] = CallByName List.2 Test.4 Test.2; let Test.28 : [C {}, C I64] = CallByName List.2 Test.4 Test.2;
let Test.13 : {[C {}, C I64], [C {}, C I64]} = Struct {Test.28, Test.29}; let Test.13 : {[C {}, C I64], [C {}, C I64]} = Struct {Test.28, Test.29};
joinpoint Test.25: joinpoint Test.25:

View file

@ -1,4 +1,5 @@
procedure Test.1 (Test.2): procedure Test.1 (Test.2):
dec Test.2;
let Test.11 : Int1 = false; let Test.11 : Int1 = false;
ret Test.11; ret Test.11;
@ -13,7 +14,6 @@ procedure Test.4 (Test.13):
procedure Test.0 (): procedure Test.0 ():
let Test.16 : Str = "abc"; let Test.16 : Str = "abc";
let Test.6 : Int1 = CallByName Test.1 Test.16; let Test.6 : Int1 = CallByName Test.1 Test.16;
dec Test.16;
let Test.9 : {} = Struct {}; let Test.9 : {} = Struct {};
switch Test.6: switch Test.6:
case 0: case 0:

View file

@ -67,11 +67,11 @@ procedure Json.144 (Json.145, Json.486, #Attr.12):
let Json.511 : I64 = 91i64; let Json.511 : I64 = 91i64;
let Json.510 : U8 = CallByName Num.127 Json.511; let Json.510 : U8 = CallByName Num.127 Json.511;
let Json.147 : List U8 = CallByName List.4 Json.509 Json.510; let Json.147 : List U8 = CallByName List.4 Json.509 Json.510;
inc Json.143;
let Json.508 : U64 = CallByName List.6 Json.143; let Json.508 : U64 = CallByName List.6 Json.143;
let Json.496 : {List U8, U64} = Struct {Json.147, Json.508}; let Json.496 : {List U8, U64} = Struct {Json.147, Json.508};
let Json.497 : {} = Struct {}; let Json.497 : {} = Struct {};
let Json.495 : {List U8, U64} = CallByName List.18 Json.143 Json.496 Json.497; let Json.495 : {List U8, U64} = CallByName List.18 Json.143 Json.496 Json.497;
dec Json.143;
let Json.149 : List U8 = StructAtIndex 0 Json.495; let Json.149 : List U8 = StructAtIndex 0 Json.495;
inc Json.149; inc Json.149;
dec Json.495; dec Json.495;
@ -131,10 +131,12 @@ procedure List.4 (List.107, List.108):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.546 : U64 = lowlevel ListLen #Attr.2; let List.546 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.546; ret List.546;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.542 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.542 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.542; ret List.542;
procedure List.70 (#Attr.2, #Attr.3): procedure List.70 (#Attr.2, #Attr.3):
@ -153,18 +155,21 @@ procedure List.80 (List.558, List.559, List.560, List.561, List.562):
joinpoint List.532 List.433 List.434 List.435 List.436 List.437: joinpoint List.532 List.433 List.434 List.435 List.436 List.437:
let List.534 : Int1 = CallByName Num.22 List.436 List.437; let List.534 : Int1 = CallByName Num.22 List.436 List.437;
if List.534 then if List.534 then
inc List.433;
let List.541 : Str = CallByName List.66 List.433 List.436; let List.541 : Str = CallByName List.66 List.433 List.436;
let List.535 : {List U8, U64} = CallByName List.139 List.434 List.541 List.435; let List.535 : {List U8, U64} = CallByName List.139 List.434 List.541 List.435;
let List.538 : U64 = 1i64; let List.538 : U64 = 1i64;
let List.537 : U64 = CallByName Num.19 List.436 List.538; let List.537 : U64 = CallByName Num.19 List.436 List.538;
jump List.532 List.433 List.535 List.435 List.537 List.437; jump List.532 List.433 List.535 List.435 List.537 List.437;
else else
dec List.433;
ret List.434; ret List.434;
in in
jump List.532 List.558 List.559 List.560 List.561 List.562; jump List.532 List.558 List.559 List.560 List.561 List.562;
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.530 : U64 = 0i64; let List.530 : U64 = 0i64;
inc List.430;
let List.531 : U64 = CallByName List.6 List.430; let List.531 : U64 = CallByName List.6 List.430;
let List.529 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.530 List.531; let List.529 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.530 List.531;
ret List.529; ret List.529;

View file

@ -19,6 +19,7 @@ procedure Test.15 (Test.49):
ret Test.70; ret Test.70;
procedure Test.16 (Test.48): procedure Test.16 (Test.48):
dec Test.48;
let Test.79 : {} = Struct {}; let Test.79 : {} = Struct {};
let Test.78 : Int1 = CallByName Test.13 Test.79; let Test.78 : Int1 = CallByName Test.13 Test.79;
ret Test.78; ret Test.78;
@ -27,11 +28,9 @@ procedure Test.17 (Test.47):
ret Test.47; ret Test.47;
procedure Test.35 (Test.36, Test.73): procedure Test.35 (Test.36, Test.73):
inc Test.36;
ret Test.36; ret Test.36;
procedure Test.37 (Test.38, Test.81): procedure Test.37 (Test.38, Test.81):
inc Test.38;
ret Test.38; ret Test.38;
procedure Test.40 (Test.41, Test.65, Test.39): procedure Test.40 (Test.41, Test.65, Test.39):
@ -50,7 +49,6 @@ procedure Test.43 (Test.44, Test.42):
joinpoint Test.62 Test.60: joinpoint Test.62 Test.60:
let Test.59 : List U8 = Array []; let Test.59 : List U8 = Array [];
let Test.58 : List U8 = CallByName Test.40 Test.59 Test.44 Test.60; let Test.58 : List U8 = CallByName Test.40 Test.59 Test.44 Test.60;
dec Test.59;
ret Test.58; ret Test.58;
in in
let Test.75 : Int1 = CallByName Bool.2; let Test.75 : Int1 = CallByName Bool.2;
@ -59,7 +57,6 @@ procedure Test.43 (Test.44, Test.42):
inc Test.77; inc Test.77;
dec Test.42; dec Test.42;
let Test.76 : Int1 = CallByName Test.16 Test.77; let Test.76 : Int1 = CallByName Test.16 Test.77;
dec Test.77;
let Test.61 : Int1 = CallByName Test.14 Test.76; let Test.61 : Int1 = CallByName Test.14 Test.76;
jump Test.62 Test.61; jump Test.62 Test.61;
else else

View file

@ -46,6 +46,11 @@ procedure Encode.23 (Encode.98):
procedure Encode.23 (Encode.98): procedure Encode.23 (Encode.98):
ret Encode.98; ret Encode.98;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
dec Encode.99;
let Encode.138 : Str = "a Lambda Set is empty. Most likely there is a type error in your program.";
Crash Encode.138
procedure Encode.24 (Encode.99, Encode.107, Encode.101): procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.111 : List U8 = CallByName Test.5 Encode.99 Encode.101 Encode.107; let Encode.111 : List U8 = CallByName Test.5 Encode.99 Encode.101 Encode.107;
ret Encode.111; ret Encode.111;
@ -70,10 +75,6 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.134 : List U8 = CallByName Json.144 Encode.99 Encode.101 Encode.107; let Encode.134 : List U8 = CallByName Json.144 Encode.99 Encode.101 Encode.107;
ret Encode.134; ret Encode.134;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.138 : Str = "a Lambda Set is empty. Most likely there is a type error in your program.";
Crash Encode.138
procedure Encode.26 (Encode.105, Encode.106): procedure Encode.26 (Encode.105, Encode.106):
let Encode.109 : List U8 = Array []; let Encode.109 : List U8 = Array [];
let Encode.110 : {{}, {}} = CallByName Test.2 Encode.105; let Encode.110 : {{}, {}} = CallByName Test.2 Encode.105;
@ -107,11 +108,11 @@ procedure Json.144 (Json.145, Json.486, #Attr.12):
let Json.511 : I64 = 91i64; let Json.511 : I64 = 91i64;
let Json.510 : U8 = CallByName Num.127 Json.511; let Json.510 : U8 = CallByName Num.127 Json.511;
let Json.147 : List U8 = CallByName List.4 Json.509 Json.510; let Json.147 : List U8 = CallByName List.4 Json.509 Json.510;
inc Json.143;
let Json.508 : U64 = CallByName List.6 Json.143; let Json.508 : U64 = CallByName List.6 Json.143;
let Json.496 : {List U8, U64} = Struct {Json.147, Json.508}; let Json.496 : {List U8, U64} = Struct {Json.147, Json.508};
let Json.497 : {} = Struct {}; let Json.497 : {} = Struct {};
let Json.495 : {List U8, U64} = CallByName List.18 Json.143 Json.496 Json.497; let Json.495 : {List U8, U64} = CallByName List.18 Json.143 Json.496 Json.497;
dec Json.143;
let Json.149 : List U8 = StructAtIndex 0 Json.495; let Json.149 : List U8 = StructAtIndex 0 Json.495;
inc Json.149; inc Json.149;
dec Json.495; dec Json.495;
@ -146,11 +147,11 @@ procedure Json.144 (Json.145, Json.486, #Attr.12):
let Json.561 : I64 = 91i64; let Json.561 : I64 = 91i64;
let Json.560 : U8 = CallByName Num.127 Json.561; let Json.560 : U8 = CallByName Num.127 Json.561;
let Json.147 : List U8 = CallByName List.4 Json.559 Json.560; let Json.147 : List U8 = CallByName List.4 Json.559 Json.560;
inc Json.143;
let Json.558 : U64 = CallByName List.6 Json.143; let Json.558 : U64 = CallByName List.6 Json.143;
let Json.546 : {List U8, U64} = Struct {Json.147, Json.558}; let Json.546 : {List U8, U64} = Struct {Json.147, Json.558};
let Json.547 : {} = Struct {}; let Json.547 : {} = Struct {};
let Json.545 : {List U8, U64} = CallByName List.18 Json.143 Json.546 Json.547; let Json.545 : {List U8, U64} = CallByName List.18 Json.143 Json.546 Json.547;
dec Json.143;
let Json.149 : List U8 = StructAtIndex 0 Json.545; let Json.149 : List U8 = StructAtIndex 0 Json.545;
inc Json.149; inc Json.149;
dec Json.545; dec Json.545;
@ -192,7 +193,6 @@ procedure Json.146 (Json.488, Json.152):
dec Json.488; dec Json.488;
let Json.557 : {} = Struct {}; let Json.557 : {} = Struct {};
let Json.153 : List U8 = CallByName Encode.24 Json.150 Json.152 Json.557; let Json.153 : List U8 = CallByName Encode.24 Json.150 Json.152 Json.557;
dec Json.150;
joinpoint Json.552 Json.154: joinpoint Json.552 Json.154:
let Json.550 : U64 = 1i64; let Json.550 : U64 = 1i64;
let Json.549 : U64 = CallByName Num.20 Json.151 Json.550; let Json.549 : U64 = CallByName Num.20 Json.151 Json.550;
@ -243,18 +243,22 @@ procedure List.4 (List.107, List.108):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.540 : U64 = lowlevel ListLen #Attr.2; let List.540 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.540; ret List.540;
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.613 : U64 = lowlevel ListLen #Attr.2; let List.613 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.613; ret List.613;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.536 : [C {}, C {}] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.536 : [C {}, C {}] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.536; ret List.536;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.609 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.609 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.609; ret List.609;
procedure List.70 (#Attr.2, #Attr.3): procedure List.70 (#Attr.2, #Attr.3):
@ -273,12 +277,14 @@ procedure List.80 (List.551, List.552, List.553, List.554, List.555):
joinpoint List.526 List.433 List.434 List.435 List.436 List.437: joinpoint List.526 List.433 List.434 List.435 List.436 List.437:
let List.528 : Int1 = CallByName Num.22 List.436 List.437; let List.528 : Int1 = CallByName Num.22 List.436 List.437;
if List.528 then if List.528 then
inc List.433;
let List.535 : [C {}, C {}] = CallByName List.66 List.433 List.436; let List.535 : [C {}, C {}] = CallByName List.66 List.433 List.436;
let List.529 : {List U8, U64} = CallByName List.139 List.434 List.535 List.435; let List.529 : {List U8, U64} = CallByName List.139 List.434 List.535 List.435;
let List.532 : U64 = 1i64; let List.532 : U64 = 1i64;
let List.531 : U64 = CallByName Num.19 List.436 List.532; let List.531 : U64 = CallByName Num.19 List.436 List.532;
jump List.526 List.433 List.529 List.435 List.531 List.437; jump List.526 List.433 List.529 List.435 List.531 List.437;
else else
dec List.433;
ret List.434; ret List.434;
in in
jump List.526 List.551 List.552 List.553 List.554 List.555; jump List.526 List.551 List.552 List.553 List.554 List.555;
@ -287,24 +293,28 @@ procedure List.80 (List.624, List.625, List.626, List.627, List.628):
joinpoint List.599 List.433 List.434 List.435 List.436 List.437: joinpoint List.599 List.433 List.434 List.435 List.436 List.437:
let List.601 : Int1 = CallByName Num.22 List.436 List.437; let List.601 : Int1 = CallByName Num.22 List.436 List.437;
if List.601 then if List.601 then
inc List.433;
let List.608 : [] = CallByName List.66 List.433 List.436; let List.608 : [] = CallByName List.66 List.433 List.436;
let List.602 : {List U8, U64} = CallByName List.139 List.434 List.608 List.435; let List.602 : {List U8, U64} = CallByName List.139 List.434 List.608 List.435;
let List.605 : U64 = 1i64; let List.605 : U64 = 1i64;
let List.604 : U64 = CallByName Num.19 List.436 List.605; let List.604 : U64 = CallByName Num.19 List.436 List.605;
jump List.599 List.433 List.602 List.435 List.604 List.437; jump List.599 List.433 List.602 List.435 List.604 List.437;
else else
dec List.433;
ret List.434; ret List.434;
in in
jump List.599 List.624 List.625 List.626 List.627 List.628; jump List.599 List.624 List.625 List.626 List.627 List.628;
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.524 : U64 = 0i64; let List.524 : U64 = 0i64;
inc List.430;
let List.525 : U64 = CallByName List.6 List.430; let List.525 : U64 = CallByName List.6 List.430;
let List.523 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.524 List.525; let List.523 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.524 List.525;
ret List.523; ret List.523;
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.597 : U64 = 0i64; let List.597 : U64 = 0i64;
inc List.430;
let List.598 : U64 = CallByName List.6 List.430; let List.598 : U64 = CallByName List.6 List.430;
let List.596 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.597 List.598; let List.596 : {List U8, U64} = CallByName List.80 List.430 List.431 List.432 List.597 List.598;
ret List.596; ret List.596;

View file

@ -15,12 +15,14 @@ procedure List.26 (List.153, List.154, List.155):
ret List.157; ret List.157;
procedure List.29 (List.298, List.299): procedure List.29 (List.298, List.299):
inc List.298;
let List.508 : U64 = CallByName List.6 List.298; let List.508 : U64 = CallByName List.6 List.298;
let List.300 : U64 = CallByName Num.77 List.508 List.299; let List.300 : U64 = CallByName Num.77 List.508 List.299;
let List.494 : List U8 = CallByName List.43 List.298 List.300; let List.494 : List U8 = CallByName List.43 List.298 List.300;
ret List.494; ret List.494;
procedure List.43 (List.296, List.297): procedure List.43 (List.296, List.297):
inc List.296;
let List.506 : U64 = CallByName List.6 List.296; let List.506 : U64 = CallByName List.6 List.296;
let List.505 : U64 = CallByName Num.77 List.506 List.297; let List.505 : U64 = CallByName Num.77 List.506 List.297;
let List.496 : {U64, U64} = Struct {List.297, List.505}; let List.496 : {U64, U64} = Struct {List.297, List.505};
@ -43,10 +45,12 @@ procedure List.49 (List.370, List.371):
procedure List.6 (#Attr.2): procedure List.6 (#Attr.2):
let List.507 : U64 = lowlevel ListLen #Attr.2; let List.507 : U64 = lowlevel ListLen #Attr.2;
dec #Attr.2;
ret List.507; ret List.507;
procedure List.66 (#Attr.2, #Attr.3): procedure List.66 (#Attr.2, #Attr.3):
let List.530 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3; let List.530 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
dec #Attr.2;
ret List.530; ret List.530;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4): procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
@ -57,6 +61,7 @@ procedure List.80 (List.544, List.545, List.546, List.547, List.548):
joinpoint List.518 List.433 List.434 List.435 List.436 List.437: joinpoint List.518 List.433 List.434 List.435 List.436 List.437:
let List.520 : Int1 = CallByName Num.22 List.436 List.437; let List.520 : Int1 = CallByName Num.22 List.436 List.437;
if List.520 then if List.520 then
inc List.433;
let List.529 : U8 = CallByName List.66 List.433 List.436; let List.529 : U8 = CallByName List.66 List.433 List.436;
let List.521 : [C U64, C U64] = CallByName Test.3 List.434 List.529; let List.521 : [C U64, C U64] = CallByName Test.3 List.434 List.529;
let List.526 : U8 = 1i64; let List.526 : U8 = 1i64;
@ -68,10 +73,12 @@ procedure List.80 (List.544, List.545, List.546, List.547, List.548):
let List.523 : U64 = CallByName Num.19 List.436 List.524; let List.523 : U64 = CallByName Num.19 List.436 List.524;
jump List.518 List.433 List.438 List.435 List.523 List.437; jump List.518 List.433 List.438 List.435 List.523 List.437;
else else
dec List.433;
let List.439 : U64 = UnionAtIndex (Id 0) (Index 0) List.521; let List.439 : U64 = UnionAtIndex (Id 0) (Index 0) List.521;
let List.525 : [C U64, C U64] = TagId(0) List.439; let List.525 : [C U64, C U64] = TagId(0) List.439;
ret List.525; ret List.525;
else else
dec List.433;
let List.519 : [C U64, C U64] = TagId(1) List.434; let List.519 : [C U64, C U64] = TagId(1) List.434;
ret List.519; ret List.519;
in in
@ -79,6 +86,7 @@ procedure List.80 (List.544, List.545, List.546, List.547, List.548):
procedure List.92 (List.430, List.431, List.432): procedure List.92 (List.430, List.431, List.432):
let List.516 : U64 = 0i64; let List.516 : U64 = 0i64;
inc List.430;
let List.517 : U64 = CallByName List.6 List.430; let List.517 : U64 = CallByName List.6 List.430;
let List.515 : [C U64, C U64] = CallByName List.80 List.430 List.431 List.432 List.516 List.517; let List.515 : [C U64, C U64] = CallByName List.80 List.430 List.431 List.432 List.516 List.517;
ret List.515; ret List.515;
@ -102,6 +110,7 @@ procedure Test.3 (Test.4, Test.12):
procedure Test.0 (Test.1): procedure Test.0 (Test.1):
let Test.10 : U64 = 0i64; let Test.10 : U64 = 0i64;
let Test.11 : {} = Struct {}; let Test.11 : {} = Struct {};
inc Test.1;
let Test.2 : U64 = CallByName List.26 Test.1 Test.10 Test.11; let Test.2 : U64 = CallByName List.26 Test.1 Test.10 Test.11;
let Test.9 : U64 = 0i64; let Test.9 : U64 = 0i64;
let Test.7 : Int1 = CallByName Bool.11 Test.2 Test.9; let Test.7 : Int1 = CallByName Bool.11 Test.2 Test.9;