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
@@ -110,7 +110,7 @@ digraph flowFromInplaceLambda3_kt {
24 -> {25};
25 -> {26};
26 -> {27};
27 -> {28 38};
27 -> {28 38 29};
27 -> {38} [style=dashed];
28 -> {29};
28 -> {27} [color=green style=dashed];
@@ -171,7 +171,7 @@ digraph flowFromInplaceLambda3_kt {
49 -> {50};
50 -> {51};
51 -> {52};
52 -> {53 60};
52 -> {53 60 54};
52 -> {60} [style=dashed];
53 -> {54};
53 -> {52} [color=green style=dashed];
@@ -232,8 +232,8 @@ digraph flowFromInplaceLambda3_kt {
71 -> {72};
72 -> {73};
73 -> {74};
74 -> {85};
74 -> {75} [color=red];
74 -> {85 76};
74 -> {75} [style=dotted];
74 -> {85} [style=dashed];
75 -> {76};
75 -> {74} [color=green style=dashed];
@@ -250,8 +250,7 @@ digraph flowFromInplaceLambda3_kt {
87 -> {88};
88 -> {89};
89 -> {90};
90 -> {76} [color=red];
90 -> {75} [color=green];
90 -> {75};
subgraph cluster_20 {
color=red
@@ -298,8 +297,8 @@ digraph flowFromInplaceLambda3_kt {
96 -> {97};
97 -> {98};
98 -> {99};
99 -> {110};
99 -> {100} [color=red];
99 -> {110 101};
99 -> {100} [style=dotted];
99 -> {110} [style=dashed];
100 -> {101};
101 -> {102};
@@ -315,8 +314,7 @@ digraph flowFromInplaceLambda3_kt {
112 -> {113};
113 -> {114};
114 -> {115};
115 -> {101} [color=red];
115 -> {100} [color=green];
115 -> {100};
subgraph cluster_24 {
color=red
@@ -363,7 +361,7 @@ digraph flowFromInplaceLambda3_kt {
121 -> {122};
122 -> {123};
123 -> {124};
124 -> {125 135};
124 -> {125 135 126};
124 -> {135} [style=dashed];
125 -> {126};
126 -> {127};