FIR CFG: remove ordering from control flow through in-place lambdas

Old graph:

  arg -> lambda enter -> ... -> lambda exit -> lambda enter -> ... ->
   -> lambda exit -> call

New graph:

  arg -+-> lambda enter -> ... -> lambda exit -+-> call
       \-> lambda enter -> ... -> lambda exit -/
This commit is contained in:
pyos
2022-11-23 10:10:16 +01:00
committed by teamcity
parent 5dce772f0b
commit c4c05f5248
41 changed files with 515 additions and 555 deletions
@@ -66,8 +66,8 @@ digraph atLeastOnce_kt {
10 -> {11};
11 -> {12};
12 -> {13};
13 -> {20};
13 -> {14} [color=red];
13 -> {20 15};
13 -> {14} [style=dotted];
13 -> {20} [style=dashed];
14 -> {15};
14 -> {13} [color=green style=dashed];
@@ -80,8 +80,7 @@ digraph atLeastOnce_kt {
22 -> {23};
23 -> {24};
24 -> {25};
25 -> {15} [color=red];
25 -> {14} [color=green];
25 -> {14};
subgraph cluster_8 {
color=red
@@ -114,8 +113,8 @@ digraph atLeastOnce_kt {
26 -> {27};
27 -> {28};
28 -> {29};
29 -> {36};
29 -> {30} [color=red];
29 -> {36 31};
29 -> {30} [style=dotted];
29 -> {36} [style=dashed];
30 -> {31};
30 -> {29} [color=green style=dashed];
@@ -128,7 +127,6 @@ digraph atLeastOnce_kt {
38 -> {39};
39 -> {40};
40 -> {41};
41 -> {31} [color=red];
41 -> {30} [color=green];
41 -> {30};
}
@@ -66,7 +66,7 @@ digraph atMostOnce_kt {
10 -> {11};
11 -> {12};
12 -> {13};
13 -> {14 20};
13 -> {14 20 15};
13 -> {20} [style=dashed];
14 -> {15};
15 -> {16};
@@ -111,7 +111,7 @@ digraph atMostOnce_kt {
26 -> {27};
27 -> {28};
28 -> {29};
29 -> {30 36};
29 -> {30 36 31};
29 -> {36} [style=dashed];
30 -> {31};
31 -> {32};
@@ -66,8 +66,8 @@ digraph exactlyOnce_kt {
10 -> {11};
11 -> {12};
12 -> {13};
13 -> {20};
13 -> {14} [color=red];
13 -> {20 15};
13 -> {14} [style=dotted];
13 -> {20} [style=dashed];
14 -> {15};
15 -> {16};
@@ -79,8 +79,7 @@ digraph exactlyOnce_kt {
22 -> {23};
23 -> {24};
24 -> {25};
25 -> {15} [color=red];
25 -> {14} [color=green];
25 -> {14};
subgraph cluster_8 {
color=red
@@ -113,8 +112,8 @@ digraph exactlyOnce_kt {
26 -> {27};
27 -> {28};
28 -> {29};
29 -> {36};
29 -> {30} [color=red];
29 -> {36 31};
29 -> {30} [style=dotted];
29 -> {36} [style=dashed];
30 -> {31};
31 -> {32};
@@ -126,7 +125,6 @@ digraph exactlyOnce_kt {
38 -> {39};
39 -> {40};
40 -> {41};
41 -> {31} [color=red];
41 -> {30} [color=green];
41 -> {30};
}
@@ -76,7 +76,7 @@ digraph inPlaceLambda_kt {
15 -> {16};
16 -> {17};
17 -> {18};
18 -> {19 23};
18 -> {19 23 20};
18 -> {23} [style=dashed];
19 -> {20};
20 -> {21};
@@ -66,7 +66,7 @@ digraph unknown_kt {
10 -> {11};
11 -> {12};
12 -> {13};
13 -> {14 20};
13 -> {14 20 15};
13 -> {20} [style=dashed];
14 -> {15};
14 -> {13} [color=green style=dashed];
@@ -112,7 +112,7 @@ digraph unknown_kt {
26 -> {27};
27 -> {28};
28 -> {29};
29 -> {30 36};
29 -> {30 36 31};
29 -> {36} [style=dashed];
30 -> {31};
30 -> {29} [color=green style=dashed];